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

查询按持有专辑数量降序排列的艺术家的SQL语法怎么写

艺术家专辑总数查询SQL实现

已知表结构

  • Album表字段:AlbumId、Title、ArtistID
  • Artist表字段:ArtistId、Name

完整正确SQL

需求为查询所有艺术家及其对应的专辑总数,按专辑总数降序排列,实现代码如下:

SELECT 
    art.ArtistId,
    art.Name,
    COUNT(alb.AlbumId) AS 专辑总数
FROM 
    Artist art
LEFT JOIN 
    Album alb ON art.ArtistId = alb.ArtistID
GROUP BY 
    art.ArtistId, art.Name
ORDER BY 
    专辑总数 DESC;

如果仅需要查询至少拥有1张专辑的艺术家,可以将上述SQL中的LEFT JOIN替换为INNER JOIN即可。

原有不完整SQL问题说明

你提供的初始不完整SQL如下:

SELECT ARTISTID FROM ALBUMS GROUP BY ARTISTID HAVING COUNT(ARTISTID)

存在的问题:

  • 仅关联了Album表,只能查到有专辑的艺术家ID,无法拿到艺术家姓名,也覆盖不到没有专辑的艺术家
  • HAVING子句缺少判断条件,属于语法错误,且当前需求不需要做聚合后过滤,无需使用HAVING
  • 没有输出专辑计数字段,也缺少按数量降序的排序逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:48:03