顧客とスコア(この場合は無関係で、さまざまな要因に基づいています。顧客は複数のスコアを持つことができます)を含むテーブルがあります。
customer_id | score | score_giver_id
====================================
1 | 100 | 1
1 | 102 | 1
1 | 101 | 1
1 | 140 | 1
2 | 131 | 3
1 | 44 | 1
3 | 223 | 1
3 | 1 | 2
3 | 201 | 1
3 | 211 | 1
3 | 231 | 1
3 | 243 | 1
score_giver_id
無関係ですが、私はまだそれを取得したいと思います。
上記の例では、customer_idでグループ化された50パーセンタイルを取得すると、結果は次のようになります(この例では50パーセンタイルを選択しました。
customer_id | score | score_giver_id
====================================
1 | 101 | 1
2 | 131 | 3
3 | 223 | 1
PostgreSQLの10パーセンタイル、それぞれ90パーセンタイルの値を取得する必要があります。9.4からntile
機能があることを見てきましたが、それがどのように機能するのか、何をするのか、そしてそれが私を助けるのかどうかはよくわかりません。
私はMySQL用の素敵なスニペットを見つけましたが、いくつかの注意事項がありますが、可能であれば組み込み関数を使用したいと思います(MySQLの場合はスニペットがありません)。