MySQL order by duplicates top first
mysql, select, sql
Solution
"...most frequent duplicate first."
query,
SELECT a.*
FROM TableName a
INNER JOIN
(
SELECT Color, COUNT(*) totalCount
FROM TableName
GROUP BY Color
) b ON a.Color = b.Color
ORDER BY b.TotalCount DESC, a.ID ASC
- SQLFiddle Demo
OUTPUT
╔════╦════════╗
║ ID ║ COLOR ║
╠════╬════════╣
║ 2 ║ green ║
║ 4 ║ green ║
║ 5 ║ green ║
║ 1 ║ red ║
║ 6 ║ red ║
║ 3 ║ yellow ║
╚════╩════════╝
Problem
I have a lammer question, as far as I am not pro at mysql I have fields like ``` id color 1 red 2 green 3 yellow 4 green 5 green 6 red ``` I want to group by duplicates , and most frequent duplicate first so it should be selected this way: ``` id color 2 green 4 green 5 green 1 red 6 red 3 yellow ``` thanks