我有一个名为iran_ranking的表,如:
<表类>
user_id
user_state
point_year
user_point
user_sex
tbody><<tr>1 德黑兰 2022 200 男人 2德黑兰 2021 200 男人 3 阿瓦兹 2020 190 男人 1德黑兰 2022 180 男人 3 阿瓦兹 2022 170 男人 表类>
SELECT *,
SUM(pointsum) AS pointsum_top20
FROM (
SELECT user_state,
SUM(user_point) AS pointsum,
ROW_NUMBER() OVER (PARTITION BY user_state ORDER BY SUM(user_point) DESC) rn
FROM iran_ranking
-- WHERE ...
GROUP BY user_id, user_state
) subquery
WHERE rn <= 20
GROUP BY user_state