gpt4 book ai didi

mysql - SQL中如何统计多列出现的次数

转载 作者:可可西里 更新时间:2023-11-01 07:30:02 25 4
gpt4 key购买 nike

我在 SQL 中有下表

TV_Show | genre_1 | genre_2 |
a | action | sci-fi |
b | sci-fi | comedy |
c | comedy | romance |
d | action | sci-fi |
. | . | . |
. | . | . |
. | . | . |

我想运行一个查询,计算每个不同的、独特的类型在整个表中出现的次数。我想要以下结果。此输出的顺序无关紧要:

action    2
sci-fi 3
comedy 2
romance 1
. .
. .
. .

SQL 查询应该是什么?

编辑我已经尝试运行以下命令,但它不起作用:

SELECT genre1 OR genre2, COUNT(*) FROM tv_show GROUP BY genre1 OR genre2

编辑2

这个例子是对我的实际 SQL 表的简化。我的实际表有其他列具有不同的数据。但我只有两个 genre 列,我想对其进行查询。

最佳答案

使用union all和聚合:

select genre, count(*)
from ((select genre_1 as genre from tv_show) union all
(select genre_2 as genre from tv_show)
) g
group by genre;

通过简单的修改,您可以为每一列添加计数:

select genre, count(*), sum(first), sum(second)
from ((select genre_1 as genre, 1 as first, 0 as second from tv_show) union all
(select genre_2 as genre, 0, 1 from tv_show)
) g
group by genre;

关于mysql - SQL中如何统计多列出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41264027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com