有多少电影只属于一种类型?

Posted

技术标签:

【中文标题】有多少电影只属于一种类型?【英文标题】:How many movies belong to only one genre? 【发布时间】:2021-03-12 11:12:30 【问题描述】:

我想知道有多少电影只有一种类型? 这是我用过的SQL代码

WITH genre_count 
AS
(
SELECT
    COUNT(movie_id) AS no_of_movies_with_one_genre
FROM
    genre
)
SELECT *
FROM
    genre_count
HAVING
    COUNT(genre) = 1;

以下是我的数据库的 ERD enter image description here

【问题讨论】:

请分享更多详细信息,例如表结构、示例输入数据、与该数据对应的预期输出以及您解决问题的尝试。你的代码到底有什么问题? 【参考方案1】:

我会使用NOT EXISTS:

SELECT COUNT(*) AS no_of_movies_with_one_genre
FROM genre g1
WHERE NOT EXISTS (SELECT 1 FROM genre g2 WHERE g2.movie_id = g1.movie_id AND g2.genre <> g1.genre)

【讨论】:

感谢您的询问 @JayThakur 很好,如果它有效并且不要忘记通过单击复选标记来接受答案。【参考方案2】:

您的代码需要稍作修改,看看是否可行

WITH genre_count 
AS(
SELECT movie_id, count(genre) as count_of_genre
FROM genre group by movie_id)
SELECT count(movie_id) FROM genre_count where count_of_genre = 1;

【讨论】:

以上是关于有多少电影只属于一种类型?的主要内容,如果未能解决你的问题,请参考以下文章

如何在这种情况下使用group by表达式?

那些属于布尔类型??

MySQL中的bit类型知道多少

c++有混合类型吗

求变形金刚大电影有多少个角色 名字 给力···

C语言中有32个关键词,9种控制语句,34种运算符,分别是哪些?