簡體   English   中英

SQL查詢以查找兩列中不同值的計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM