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

PostgreSQL条件计数求助:统计影片租赁次数的查询改写

按影片ID统计租赁次数的SQL解决方案

最终查询语句

直接使用GROUP BY分组和COUNT()聚合函数就能实现需求,修改后的SQL如下:

SELECT
    i.film_id,
    COUNT(r.rental_id) AS "COUNT of rental_id"
FROM
    rental AS r
INNER JOIN inventory AS i ON i.inventory_id = r.inventory_id
GROUP BY
    i.film_id
ORDER BY
    i.film_id;

关键逻辑说明

  • GROUP BY i.film_id:将数据按影片ID分组,保证每一行对应唯一一部影片
  • COUNT(r.rental_id):统计每组内租赁ID的总数,也就是该影片的租赁次数
  • AS "COUNT of rental_id":给统计列设置你需要的别名,PostgreSQL中带空格的别名必须用双引号包裹

关于之前尝试的说明

PostgreSQL中不存在Excel里的COUNTIF函数,你的场景不需要CASE语句,直接分组统计是最简洁的方案。如果硬要用CASE,写法会是COUNT(CASE WHEN r.rental_id IS NOT NULL THEN r.rental_id END),但完全没必要,COUNT()本身就会忽略NULL值,直接统计非空的租赁ID数量即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:05:19