Tôi có một bảng chứa khách hàng và điểm số (dựa trên các yếu tố khác nhau, không liên quan trong trường hợp này; một khách hàng có thể có nhiều điểm), trông giống như sau:
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
Điều score_giver_id
này không liên quan, nhưng tôi vẫn muốn lấy nó.
Trong ví dụ trên, khi lấy phần trăm thứ 50, được nhóm bởi customer_id, kết quả sẽ là (Tôi đã chọn phần trăm thứ 50 trong ví dụ này, vì nó minh họa những gì tôi muốn làm tốt hơn):
customer_id | score | score_giver_id
====================================
1 | 101 | 1
2 | 131 | 3
3 | 223 | 1
Tôi đã sử dụng phương pháp được mô tả ở đây .
Tôi cần lấy giá trị ở phần trăm thứ 10, tương ứng ở phần trăm thứ 90 trong PostgreQuery. Tôi đã thấy rằng từ 9,4 có một ntile
chức năng, nhưng tôi không thực sự hiểu cách thức hoạt động của nó, những gì nó làm và nếu nó giúp tôi.
Tôi đã tìm thấy một đoạn mã hay cho MySQL, nó hoạt động (mặc dù có một số cảnh báo), nhưng tôi muốn sử dụng các hàm dựng sẵn nếu có (đối với MySQL không có, do đó là đoạn trích).