繁体   English   中英

在 SQL 如何计算结果的数量?

[英]In SQL how to count the number of result?

我有以下 SQL DB:

DB名称: films

DB fields: id, title, release_year, country, duration, language, certification, gross, budget

我正在尝试解决以下问题:计算 200 多部电影在不同年份发行了多少?

我尝试运行以下 SQL 查询:

SELECT release_year
FROM films
GROUP BY release_year
HAVING COUNT(release_year) > 200;

但是我得到了 2000 年之后发布的年份。(总共有 13 个结果)当尝试使用SELECT count(release_year)我没有得到13 (我每年都在计数)

那么如何计算结果总数?

如果您的数据库支持分析功能,则是一种解决问题的优雅方式:

SELECT TOP 1 COUNT(*) OVER() AS num_movies
FROM films
GROUP BY release_year
HAVING COUNT(*) > 200;

以上适用于 SQL Server,在 MySQL 8+ 和 Postgres 上使用:

SELECT COUNT(*) OVER() AS num_movies
FROM films
GROUP BY release_year
HAVING COUNT(*) > 200
LIMIT 1;

我喜欢使用WITH语句作为

WITH atable AS (SELECT release_year, COUNT(*)
FROM films
GROUP BY release_year
HAVING COUNT(release_year) > 200)

SELECT COUNT(*)
FROM atable;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM