簡體   English   中英

在 SQL 中,如何加入多個聚合查詢(特別是計數或求和)?

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

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