我知道如何根據字段中的不同值計算表中的記錄數,但我現在想要返回表中的所有記錄在給定字段中有重複的值(沒有看到沒有的記錄),所以我可以對這些記錄進行一些分析。我可以用這種方法計數嗎?我試過返回一個表中的所有記錄,對於mysql中的特定字段計數大於1
where count (distinct FIELD_A)>1
但它說我錯誤地使用了組。
我知道如何根據字段中的不同值計算表中的記錄數,但我現在想要返回表中的所有記錄在給定字段中有重複的值(沒有看到沒有的記錄),所以我可以對這些記錄進行一些分析。我可以用這種方法計數嗎?我試過返回一個表中的所有記錄,對於mysql中的特定字段計數大於1
where count (distinct FIELD_A)>1
但它說我錯誤地使用了組。
要在執行聚合後限制/過濾查詢輸出,請使用HAVING
子句。
WHERE
子句用於在執行聚合之前限制/過濾查詢輸出(因此,如果您有一些行不希望包含在COUNT中,則可以使用WHERE子句將其過濾掉)。
此外,您在這裏也不應該使用DISTINCT
,它會在計算COUNT之前刪除所有重複項。
試試這個:
SELECT
FIELD_A, count(*) no_of_records
FROM table
GROUP BY FIELD_A
HAVING count(*) > 1;
使用having
聲明
Select Field_Blah, Count(Distinct Field_A)
From table_a
group by Field_Blah
having Count(Distinct Field_A) > 1