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

PostgreSQL中分组查询性能对比:文本GROUP BY vs 整数分组CTE

如何高效查询至少包含2名演员的视频?

现有两张关联的数据表:

  • play表:用于关联视频与演员,包含video_id(对应视频ID)、actor_id(对应演员ID)字段
  • videos表:存储视频基础信息,包含id(视频唯一ID)、title(视频标题)字段

以下是三种实现方案:

方案一:基于文本类型属性使用GROUP BY

关联两张表后,直接按视频标题分组,筛选分组后关联演员数量≥2的视频:

select v.title from play
    join videos v on play.video_id = v.id
    group by v.title
    having count(v.title) >= 2;

方案二:使用CTE结合SELECT(基于整数类型属性分组)

先通过CTE筛选出关联演员数量≥2的视频ID,再通过子查询匹配对应的视频标题:

with req as (
    select video_id from play group by video_id having count(*) >= 2
    )
    select title from videos where videos.id in (select video_id from req);

方案三:使用CTE结合JOIN(基于整数类型属性分组)

先通过CTE筛选出关联演员数量≥2的视频ID,再通过JOIN关联匹配对应的视频标题:

with req as (
    select video_id from play group by video_id having count(*) >= 2
    )
    select title from videos  join req on videos.id = req.video_id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:40:46