请用一段mySQL查询出每个职业类型下用户年龄从高到低前5名的customer_id及该id对应的年龄、月收入。
可以使用以下MySQL查询语句来实现:
SELECT customer_id, age, monthly_income
FROM (
SELECT customer_id, age, monthly_income,
ROW_NUMBER() OVER (PARTITION BY occupation ORDER BY age DESC) AS rank
FROM customers
) AS ranked
WHERE rank <= 5
ORDER BY occupation, age DESC;
上述查询语句将会按照职业类型分组,并按照年龄从高到低的顺序为每个职业类型分配一个排名。然后,我们选择排名前5的记录,并按照职业类型和年龄从高到低的顺序进行排序。最后的结果将包括customer_id、年龄和月收入这三个字段。
原文地址: http://www.cveoy.top/t/topic/iMHj 著作权归作者所有。请勿转载和采集!