簡體   English   中英

如何兩次輸出相同的列,受不同的 WHERE 子句和 COUNT 函數的影響

[英]How to output the same column twice, effected by different WHERE clauses with the COUNT function

我需要在不同的條件和別名下兩次輸出一列。 注:這一列也是我拉取的每張表的PKEY

為簡單起見,假設我想輸出兩次的列稱為 COL1

-我想輸出的第一個 COL1 版本包含 COL1 是唯一值的行 讓我們稱之為“UniqueCol1”

-我想輸出的 COL1 的第二個版本包含在數據集中出現不止一次 COL1 的行讓我們稱之為“NonUniqueCol1”

我的查詢中給我帶來麻煩的部分是,對於每個版本的 COL1,許多其他不同的條件都需要為真,涉及連接,而且我不知道在哪里輸入我認為需要的 COUNT 條件。

我放在下面的代碼本質上是我現在的查詢。

Select T1.COL2, T1.COL3, count(T1.COL3) as Counted
FROM table1 T1
INNER JOIN table2 T2
ON T1.COL1 = T2.COL1
AND T1.COL2 = T2.COL2
AND T1.COL3 = T2.COL3
WHERE EXISTS 
(
Select 1 
FROM
table2 TT2
inner join table1 TT1
ON TT2.COL1 = TT1.COL1
WHERE TT2.COL4 ='A'
AND TT2.COL5 ='3'
AND TT2.COL6 <> '55555555'
AND TT1.COL7 = 'M'
AND TT2.COL2 = T1.COL2
AND TT2.COL3 = T1.COL3

)
Group BY T1.COL2, T1.COL3
HAVING count(T1.COL2) >=3;

這個查詢的結果是這樣的:

COL2      COL3       Counted
C0067     4355       3
D8120     5777       4
C4444     9009       3
TBC09     1133       3
C0999     4617       3

在 COL3 中計算的這些條目中,有兩個不同的 COL1

  1. 獨特的 COL1 值

  2. 多次出現的 COL1 值

My desired result is to print COL2, COL3, UniqueCOL1, and NonUniqueCOL1

感謝您的閱讀,非常感謝您的幫助,因為 SQL 不是我的強項。

我不確定您是否已經很好地解釋了您想要實現的目標,但這里有一些代碼可能會有所幫助,也可能不會。

WITH table1(col1, col2, col3) AS (values ('x','a','a'), ('x','a','a'),('y','a','a'), ('z','a','a'),(null,'a','a'),('x','b','a'),('x','b','a'))
SELECT
    T1.COL2
,   T1.COL3
,   count(T1.COL1)          as NonUniqueCOL1
,   count(DISTINCT T1.COL1) as UniqueCOL1
FROM table1 T1
GROUP BY
    COL2, COL3

有回報

COL2 |COL3 |NONUNIQUECOL1 |UNIQUECOL1 |
-----|-----|--------------|-----------|
a    |a    |4             |3          |
b    |a    |2             |1          |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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