[英]SQL query to find count of distinct values among two columns
給定名為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;
+---------------------+ | count(distinct bag) | +---------------------+ | 7 | +---------------------+
編輯:@Tim Biegeleisen和@eggyal的禮貌,較短的形式是:
SELECT COUNT(*) from (SELECT bag_1 AS bag FROM demo UNION SELECT bag_2 AS bag FROM demo) a;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.