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

如何编写SQL查询参与美国歌手最多的Edition?现有语句报错求修正

正确SQL解决方案

你的原SQL存在几个关键语法错误:

  • 未通过JOIN关联两张表,直接引用singer表字段会导致字段找不到
  • SQL语句顺序错误,WHERE子句必须放在GROUP BY之前
  • 条件判断用了==,SQL里应该用=
  • 查询目标是Edition,但原语句选了Singer_ID,不符合需求

以下是满足需求的正确SQL:

SELECT 
    m.Edition,
    COUNT(DISTINCT m.Singer_ID) AS us_singer_count
FROM 
    music m
JOIN 
    singer s ON m.Singer_ID = s.Singer_ID
WHERE 
    s.nationality = 'USA'
GROUP BY 
    m.Edition
ORDER BY 
    us_singer_count DESC
LIMIT 1;

语句说明:

  • 使用JOIN通过Singer_ID关联music(别名m)和singer(别名s)两张表
  • WHERE子句筛选出美国国籍的歌手
  • GROUP BY m.Edition按专辑版本分组
  • COUNT(DISTINCT m.Singer_ID)统计每个版本下的不同美国歌手数量(避免同一歌手多次参与同一版本重复计数)
  • ORDER BY us_singer_count DESC按歌手数量降序排序,LIMIT 1取数量最多的版本

如果需要展示所有版本的歌手数量(不只最多的那个),可以去掉LIMIT 1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:40:30