簡體   English   中英

從 SQL 中的多個相同格式的表中聚合數據

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

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