对分组项的前20行求和



我有一个名为iran_ranking的表,如:

<表类> user_id user_state point_year user_point user_sex tbody><<tr>1德黑兰2022200男人2德黑兰2021200男人3阿瓦兹2020190男人1德黑兰2022180男人3阿瓦兹2022170男人
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

最新更新