SELECT t.*,(select count(*) from city as ttwhere tt.name=t.name) as countFROM `city` as twhere (select count(*) from city as ttwhere tt.name=t.name) > 1 order by count desc
SELECTt.*,(SELECT COUNT(*) FROM city AS tt WHERE tt.name=t.name) AS countFROM `city` AS tWHERE(SELECT count(*) FROM city AS tt WHERE tt.name=t.name) > 1 ORDER BY count DESC
Create TEMPORARY table tmp select concat(f1,f2) as cfs,t1.* from mytable as t1;Create index x_tmp_cfs on tmp(cfs);Create table unduptable select f1,f2,... from tmp group by cfs;
SELECT COUNT(CONCAT(name,email)) AS tot,name,emailFROM usersGROUP BY CONCAT(name,email)HAVING tot>1 (This query will SHOW the USER list which ARE greater THAN 1AND also COUNT)
WITH cte AS (SELECT *,COUNT(*) OVER(PARTITION BY col_name) AS num_of_duplicates_group,ROW_NUMBER() OVER(PARTITION BY col_name ORDER BY col_name2) AS pos_in_groupFROM table)SELECT *FROM cteWHERE num_of_duplicates_group > 1;
SELECT * FROM TableName INNER JOIN(SELECT DupliactedData FROM TableName GROUP BY DupliactedData HAVING COUNT(DupliactedData) > 1 order by DupliactedData)temp ON TableName.DupliactedData = temp.DupliactedData;
SELECT GROUP_CONCAT(id), name, COUNT(*) c,COUNT(*) OVER() AS totalRecords,CONCAT(FORMAT(COUNT(*)/COUNT(*) OVER()*100,2),'%') as recurringPecentageFROM tableGROUP BY nameHAVING c > 1