PostgreSQL中如何按计算的总经验年限分组统计顾问档案?
PostgreSQL实现指定经验统计需求
完全可以实现该需求,通过CTE(公共表表达式)或嵌套查询即可完成,以下是具体的SQL语句:
WITH consultant_total_years AS ( SELECT consultant_profile_id, SUM(years) AS total_years_of_experience_per_consultant FROM experiences GROUP BY consultant_profile_id ) SELECT total_years_of_experience_per_consultant, COUNT(consultant_profile_id) AS count_of_consultant_profiles FROM consultant_total_years GROUP BY total_years_of_experience_per_consultant ORDER BY total_years_of_experience_per_consultant DESC;
语句说明:
- 计算单顾问总经验:通过CTE按
consultant_profile_id分组,用SUM(years)算出每个顾问档案的累计经验年限,得到每个顾问对应的总年限数据。 - 统计同年限顾问数量:基于第一步的结果,按总经验年限再次分组,用
COUNT(consultant_profile_id)统计拥有相同总年限的顾问档案数量,最后按总年限降序排列以匹配示例输出格式。
执行该语句后,将得到与需求完全一致的结果:
total_years_of_experience_per_consultant | count_of_consultant_profiles ------------------------------------------+------------------------------- 5 | 1 2 | 1
内容的提问来源于stack exchange,提问作者Mateusz Urbański
相关产品推荐
相关产品推荐

