고객과 점수가 포함 된 테이블이 있습니다 (이 경우와 관련이없는 다른 요인을 기준으로 고객이 여러 점수를 가질 수 있음). 다음과 같이 보입니다.
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의 90 번째 백분위 수에서 각각 10 번째 백분위 수의 값을 가져와야합니다. 9.4 이후로 ntile
함수 가 있다는 것을 보았지만 , 그것이 어떻게 작동하는지, 무엇을하는지, 그리고 그것이 나를 돕는 지 실제로 이해하지 못합니다.
작동하는 MySQL에 대한 멋진 스 니펫을 찾았지만 (몇 가지주의 사항이 있지만) 가능한 경우 내장 함수를 사용하고 싶습니다 (MySQL의 경우 스 니펫이 없으므로).