gpt4 book ai didi

mysql - SQL 查询查找两列之间不同值的计数

转载 作者:行者123 更新时间:2023-11-29 20:27:26 24 4
gpt4 key购买 nike

给定下表,名为 demo:

+----+-------+--------+
| id | bag_1 | bag_2 |
+----+-------+--------+
| 1 | Alpha | Alpha |
| 2 | Alpha | Beta |
| 3 | Beta | Beta |
| 4 | Beta | Omega |
| 5 | Beta | Delta |
| 6 | Beta | Sigma |
| 7 | Gamma | Alpha |
| 8 | Gamma | Lambda |
| 9 | Gamma | Omega |
+----+-------+--------+

如何查找 bag_1 和 bag_2 列中不同值的计数?

(预期计数 = 7)

注意:原始表约有 180 万行,因此连接从未成功完成。

最佳答案

可以使用UNION ALL来收集所有可能的值,然后COUNT(DISTINCT bag)将完​​成剩下的工作,如下所示:


SELECT COUNT(DISTINCT bag) from (SELECT bag_1 AS bag FROM demo UNION ALL SELECT bag_2 AS bag FROM demo) a;


+--------------------+
|计数(不同的包)|
+--------------------+
| 7 |
+--------------------+

编辑:向@Tim Biegeleisen 和@eggyal 行屈膝礼,较短的形式是:


SELECT COUNT(*) from (SELECT bag_1 AS bag FROM demo UNION SELECT bag_2 AS bag FROM demo) a;

关于mysql - SQL 查询查找两列之间不同值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39222727/

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