2015-11-17 93 views
1

我有一個帶有電子郵件地址和附加數據的tabel。現在我想要獲得所有在不同性別的表格中多次存在的電子郵件。我嘗試瞭如下因素查詢:SQL SELECT DISTINCT和GROUP BY查詢不起作用

SELECT email, COUNT(DISTINCT(gender)) FROM `email_data` WHERE COUNT(DISTINCT(gender)) > 1 GROUP BY email 

我得到如下因素的結果:#1111 - 無效使用組功能的

我嘗試了不同的變化,包括GROUP BY電子郵件地址,性別。但似乎沒有任何工作。如果我刪除它的作品的WHERE部分。有人可以幫我嗎?

+0

把COUNT(DISTINCT(gender))> 1條件放在having子句中。 SELECT email,COUNT(DISTINCT(gender)) FROM'email_data' COUNT(DISTINCT(gender))> 1 GROUP BY email –

回答

3

您不能將聚合函數放在WHERE子句中。他們進入HAVING條款。然而,爲了這個目的比較最大值和最小值通常更有效率:

SELECT email, COUNT(DISTINCT gender) 
FROM `email_data` 
GROUP BY email 
HAVING MIN(gender) <> MAX(gender) 
+0

Works! Thx尋求幫助。 –