如何返回每个国家的前三大消费客户



我正试图为这样的表格返回每个国家的前3名消费客户:

支出><101><1>
customer_id 国家
159 中国45
152 中国 8
159 中国 21
160 中国 6
161 中国 9
162 中国 93
152 中国 3
168 德国 91
169 德国
170 德国 38
171 德国 17
154 德国 11
154 德国 50
167 德国 63
168 德国
153 日本 7
163 日本 58
164 日本 44
153 日本 19
164 日本 10
165 日本 15
166 日本 24
153 日本 105

您似乎在使用MySQL。如果您运行的是版本8或更高版本,那么只需在此处使用ROW_NUMBER()

WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY country ORDER BY spend DESC) rn
FROM table1
)
SELECT customer_id, country, spend
FROM cte
WHERE rn <= 3;

最新更新