[英]Add a column from subquery to the SELECT of main query without applying filteres from WHERE in main query
我需要以下問題的幫助:
所以我有一個表 TABLE1,其中包含 Date、Name、STAT1、STAT2、PROBLEM1 列
我有一個這樣的查詢:
SELECT Date, Name, sum(STAT1), sum(STAT2)
FROM TABLE1
WHERE PROBLEM1 <> 0
GROUP BY Date, Name
這個查詢的結果是我想要的,但我還需要添加 2 列: TOTALCOUNT 基本上是每個組的行數,而不應用過濾器 (PROBLEM1 <> 0 ) 和 COUNTERRORS 是每個組的計數 PROBLEM1 = 0。
所以給你進一步的例子。 對於日期 A,名稱 BI 有 1000 行。 其中 300 個有 PROBLEM1 = 0。我運行上面提到的第一個查詢,由於過濾器 WHERE PROBLEM1 <> 0,它基於 700 行計算我的 sum(STAT1)、sum(STAT2)。我需要找到一種方法在結果中添加兩列,所以最后我的表看起來像:
DATE NAME sum(STAT1) sum(STAT2) TOTALCOUNT COUNTERRORS
A B 50 3.5 1000 300
有可能嗎? 我正在嘗試使用子查詢但沒有成功。
您可以進行條件聚合:
SELECT Date, Name,
sum(case when PROBLEM1 <> 0 then stat1 else 0 end) as stat1,
sum(case when PROBLEM1 <> 0 then stat2 else 0 end) as stat2,
count(*) as TOTALCOUNT,
sum(PROBLEM1 = 0) as COUNTERRORS
FROM TABLE1
GROUP BY Date, Name;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.