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

PostgreSQL如何统计多列组合?计算每个乐手所属的乐队总数量

错误原因
  • 原SQL的GROUP BY子句包含了instrument字段,会将同一个乐手的不同乐器记录拆分为独立分组,所以id为2的乐手会返回两行结果
  • 直接使用count(id_band)统计时,同一个乐手在同一个乐队担任多个乐器的记录会被重复计数,无法得到准确的乐队总数量
正确实现方案

使用如下SQL即可满足需求:

SELECT e.id_musician, COUNT(DISTINCT e.id_band) AS band_total
FROM MEMBER e
GROUP BY e.id_musician
ORDER BY e.id_musician;

实现逻辑说明

  • 仅保留id_musician作为分组依据,保证每个乐手仅对应一行统计结果
  • 用COUNT(DISTINCT e.id_band)统计每个乐手对应的不重复乐队ID数量,规避同一乐队多乐器记录导致的重复计数问题

输出结果示例

针对你提供的测试数据,执行后返回结果如下:

id_musicianband_total
11
22
31

内容的提问来源于stack exchange,提问作者Charles De Labra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:45:08