sql >> データベース >  >> RDS >> PostgreSQL

postgresqlでのn番目のパーセンタイル計算

    PostgreSQL 9.4では、パーセンタイルがネイティブでサポートされるようになり、 Ordered-Set Aggregate Functionsに実装されています。 :

    percentile_cont(fraction) WITHIN GROUP (ORDER BY sort_expression) 
    

    連続パーセンタイル:順序付けで指定された割合に対応する値を返し、必要に応じて隣接する入力項目間を補間します

    percentile_cont(fractions) WITHIN GROUP (ORDER BY sort_expression)
    

    複数の連続したパーセンタイル:分数パラメータの形状に一致する結果の配列を返します。null以外の各要素は、そのパーセンタイルに対応する値に置き換えられます

    詳細については、ドキュメントを参照してください:http://www.postgresql.org/docs/current/static/functions-aggregate.html

    いくつかの例については、こちらをご覧ください:https://github.com/michaelpq/michaelpq.github.io/blob/master/_posts/2014-02-27-postgres-9-4-feature-highlight-within-group.markdown

    CREATE TABLE aa AS SELECT generate_series(1,20) AS a;
    --SELECT 20
    
    WITH subset AS (
        SELECT a AS val,
            ntile(4) OVER (ORDER BY a) AS tile
        FROM aa
    )
    SELECT tile, max(val)
    FROM subset GROUP BY tile ORDER BY tile;
    
     tile | max
    ------+-----
        1 |   5
        2 |  10
        3 |  15
        4 |  20
    (4 rows)
    


    1. MySQL用のNavicat

    2. SQLite SUBSTRING()の説明

    3. PDOでパスワードハッシュを使用してコードをより安全にするにはどうすればよいですか?

    4. SQLite3をMySQLに移行する簡単な方法は?