Müşteriler ve puanları içeren bir tablo var (farklı faktörlere dayanarak, bu durumda ilgisiz; bir müşterinin birden fazla puanı olabilir), bu şöyle görünüyor:
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
Alakasız, ama yine de almak istediğiniz.
Yukarıdaki örnekte, customer_id ile gruplandırılmış 50. yüzdelik dilimi alırken sonuç şu olmalıdır (daha iyi yapmak istediklerimi gösteren bu örnekte 50. yüzdelik dilimi seçtim):
customer_id | score | score_giver_id
====================================
1 | 101 | 1
2 | 131 | 3
3 | 223 | 1
Burada açıklanan yöntemi kullandım .
PostgreSQL 10th persentil, sırasıyla 10th persentil, değer almak gerekir. 9.4'ten beri bir ntile
fonksiyon olduğunu gördüm , ama nasıl çalıştığını, ne yaptığını ve bana yardımcı olup olmadığını gerçekten anlamıyorum.
(Bazı uyarılar olmasına rağmen) çalışan MySQL için güzel bir snippet buldum, ancak varsa (MySQL için hiçbiri yok, bu nedenle snippet) yerleşik işlevleri kullanmak istiyorum.