超過1個值簡化這裏的東西是我的表結構:查找記錄在SQL
表名:OCRD
CardCode E_Mail U_NoEmail
123 [email protected] Y
124 [email protected] N
125 [email protected] Y
126 [email protected] N
表包含一個唯一的ID,一個電子郵件地址,和第三列(U_NoEmail
),其中顯示電子郵件的優先級爲opted in
或不給電子郵件。這有點違反直覺,Y = Opted輸出,N = Opted In
。 U_NoEmail
列也可以是NULL
。
我想對此表使用單個查詢來返回一個計數。計數是表格中U_NoEmail
具有多個值的電子郵件地址數。換句話說,我希望找到加入和退出的電子郵件地址總數,從業務角度來看,這並不會有幫助。
我不知道如何做到這一點。例如,我可以通過電子郵件地址與下面的查詢得到這樣的:
SELECT E_Mail, COUNT(DISTINCT E_Mail)
FROM OCRD
GROUP BY E_Mail
HAVING COUNT(DISTINCT U_NoEMail) > 1
這將返回所有與U_NoEmail
多個值的地址。但我無法弄清楚如何將這個作爲一個單獨的總數。如果我嘗試以下方法:
SELECT COUNT(*) FROM
(
SELECT E_Mail, COUNT(DISTINCT E_Mail)
FROM OCRD
GROUP BY E_Mail
HAVING COUNT(DISTINCT U_NoEMail) > 1
) result
我得到的錯誤:「結果」 2列指定 沒有列。
謝謝,這工作完美。知道我錯過了一些東西! – user3498450