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

SQL查询需求:找出含至少2位导演的流派并关联导演ID

完整SQL查询:筛选含至少2位导演的流派并聚合导演ID

原始表数据

director_id | genre       
d1           g1
d1           g2
d2           g2
d3           g1
d3           g2
d3           g3
d4           g3
d5           g1
d5           g3

需求

从director_genre表中筛选出至少有2位不同导演的流派,同时将每个流派对应的导演ID以逗号分隔的形式输出。

完整SQL语句(按数据库类型区分)

MySQL/MariaDB

SELECT 
    genre,
    GROUP_CONCAT(DISTINCT director_id ORDER BY director_id SEPARATOR ',') AS director_id
FROM 
    director_genre
GROUP BY 
    genre
HAVING 
    COUNT(DISTINCT director_id) >= 2;

PostgreSQL/SQL Server

SELECT 
    genre,
    STRING_AGG(DISTINCT director_id, ',' ORDER BY director_id) AS director_id
FROM 
    director_genre
GROUP BY 
    genre
HAVING 
    COUNT(DISTINCT director_id) >= 2;

Oracle

SELECT 
    genre,
    LISTAGG(DISTINCT director_id, ',') WITHIN GROUP (ORDER BY director_id) AS director_id
FROM 
    director_genre
GROUP BY 
    genre
HAVING 
    COUNT(DISTINCT director_id) >= 2;

语句说明

  • 字符串聚合函数(不同数据库对应不同函数):把同一流派下的导演ID拼接成逗号分隔的字符串,DISTINCT避免同一导演ID重复出现,ORDER BY让ID按顺序排列。
  • GROUP BY genre:按流派分组,聚合每个流派的导演数据。
  • HAVING COUNT(DISTINCT director_id) >=2:过滤掉只有1位导演的流派,只保留符合要求的流派。

执行结果

genre |  director_id       
g1      d1,d3,d5
g2      d1,d2,d3
g3      d3,d4,d5

注:你提供的期望输出中g2仅显示d1,d3,属于笔误,根据原始数据g2包含d1、d2、d3三位导演,正确输出应包含d2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:42:50