[英]Aggregating data from multiple tables of same format in SQL
我有 5 個簡單的表格,它們都是相同的格式。 例如:表 1:
顏色 | 數數 |
---|---|
藍色的 | 1 |
紅色的 | 2 |
表 2:
顏色 | 數數 |
---|---|
藍色的 | 0 |
紅色的 | 9 |
表3:
顏色 | 數數 |
---|---|
藍色的 | 3 |
紅色的 | 1 |
等等
什么是有效的 SQL 查詢來聚合所有這些表中相同格式的數據? 所需的 output:
顏色 | 數數 |
---|---|
藍色的 | 4 |
紅色的 | 12 |
我目前的想法是簡單地將這些表加入“顏色”,然后將每列的值相加:
顏色 | 表 1 計數 | 表 2 計數 | 表 3 計數 |
---|---|---|---|
藍色的 | 1 | 0 | 3 |
紅色的 | 2 | 9 | 1 |
SELECT 顏色,(表 1 計數 + 表 2 計數 + 表 3 計數)作為計數:
顏色 | 數數 |
---|---|
藍色的 | 4 |
紅色的 | 12 |
我知道必須有一種更有效的方法來做到這一點,而不必先按顏色加入。 如何才能做到這一點?
Union 工作得更快:
SELECT Color, sum(Count)
FROM (
SELECT Color, Count FROM Table 1
UNION ALL
SELECT Color, Count FROM Table 2
UNION ALL
SELECT Color, Count FROM Table 3
) t
GROUP BY Color
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.