你的查询有一个问题。在使用GROUP BY子句时,如果你想要获取每个职业类型下年龄从高到低的前5名,你需要在子查询中先按照职业类型进行分组,然后再按照年龄进行排序,最后再使用LIMIT子句获取前5名。以下是修正后的查询:

SELECT d.occupation_v AS '职业类型', d.customer_id, d.age AS '年龄', d.mon_salary_v AS '月收入' FROM DATA$ d WHERE (SELECT COUNT(*) FROM DATA$ WHERE occupation_v = d.occupation_v AND age >= d.age) <= 5 ORDER BY d.occupation_v, d.age DESC;

请用一段mySQL查询出每个职业类型下用户年龄从高到低前5名的customer_id及该id对应的年龄、月收入我写的有什么问题SELECT doccupation_v AS 职业类型 dcustomer_id dage AS 年龄 dmon_salary_v AS 月收入 FROM DATA$ d GROUP BY doccupation_v ORDER BY dage DESC LI

原文地址: https://www.cveoy.top/t/topic/iMrz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录