You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中合并两同列名表求和,获取Top5最热门名称的方法

解决方法

要找出两个表合并后Top5最热门的名称,核心逻辑是先合并两年的所有数据,再按名称分组汇总总次数,最后取排序后的前5。正确的SQL语句如下:

SELECT name, SUM(count) AS total_count
FROM (
    -- 合并两个表的所有记录
    SELECT name, count FROM names_2014
    UNION ALL
    SELECT name, count FROM names_2015
) AS combined_names
GROUP BY name
ORDER BY total_count DESC
LIMIT 5;

为什么你的原有语句不对?

你之前的错误在于合并了「未分组的2014年单条数据」和「已分组汇总的2015年数据」,这会导致:

  • 2014年的count是单条记录的数值,而非该名称在2014年的总次数(如果同一个名称在2014年有多个gender记录,会被当成多条独立数据)
  • 合并后的结果是2014的单条记录和2015的汇总记录混合,无法得到跨两年的总次数

额外说明

如果需要区分性别统计热门名称,只需要在分组和选择字段中加入gender即可:

SELECT name, gender, SUM(count) AS total_count
FROM (
    SELECT name, gender, count FROM names_2014
    UNION ALL
    SELECT name, gender, count FROM names_2015
) AS combined_names
GROUP BY name, gender
ORDER BY total_count DESC
LIMIT 5;

内容的提问来源于stack exchange,提问作者Akotic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:40:36