[英]In SQL, how to you join multiple aggregate queries (count or sum specifically)?
我有一個表,其中包含每個人不同項目的總數。 我正在嘗試創建一個新表來計算按公司和年份分組的總計 0、1、2、3、4、5、6 和 7+ 項的人數。 我想我有單獨的查詢來完成這項任務,但我無法通過連接來填充新表。 似乎完成我想要做的事情的個人查詢是:
SELECT
Company,
YEAR(Date) as Year,
COUNT(*) as items0_Count
FROM table
WHERE items_total = 0
GROUP BY Company, YEAR(Date)
ORDER BY Company, YEAR(Date)
SELECT
Company,
YEAR(Date) as Year,
COUNT(*) as items1_Count
FROM table
WHERE items_total = 1
GROUP BY Company, YEAR(Date)
ORDER BY Company, YEAR(Date)
很明顯,我會有 8 次相同的查詢,只有 where 語句發生變化,以便為每個案例生成計數,但這里只包含兩個以保持問題簡短。 希望這是有道理的,並提前感謝您的幫助!
使用條件聚合:
SELECT Company, YEAR(Date) as Year,
SUM(CASE WHEN items_total = 0 THEN 1 ELSE 0 END) as items0_Count,
SUM(CASE WHEN items_total = 1 THEN 1 ELSE 0 END) as items2_Count
FROM table
GROUP BY Company, YEAR(Date)
ORDER BY Company, YEAR(Date);
您可以為您想要的任何項目計數添加額外的列。
Union all/ union
你的兩個查詢。 按照@GordonLinoff 的回答,您將獲得所需的其他信息。
同樣作為一種簡單的方法,請在下面嘗試
SELECT
Company,
YEAR(Date) as Year,
COUNT(*) as items0_Count
FROM table
WHERE items_total in (1,0)
GROUP BY Company, YEAR(Date)
ORDER BY Company, YEAR(Date)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.