2013-04-29 60 views
0

有沒有一種方法可以根據數據在mysql列中出現的頻率來定購數據,並且使它們成爲DISTINCT。所以,如果有在這樣的表中的顏色欄:通過最常見的值訂購mysql結果

colors 
------ ---- 
red | 
blue | 
red | 
green | 
blue | 
red | 
yellow| 
blue | 
green | 
red | 

的結果將是:

red 
blue 
green 
yellow 

紅色出現了4次,藍3次綠色兩次,一次黃色。由於

回答

4

您需要你的記錄,然後排序在適當的aggregate function

SELECT colors FROM my_table GROUP BY colors ORDER BY COUNT(*) DESC 

看到它的sqlfiddle

+0

優秀。非常感謝。從來不知道有一個sqlfiddle :) – user2014429 2013-04-29 17:12:22

1

使用分組/計查詢:

SELECT color, count(color) AS cnt 
FROM colors 
GROUP BY color 
ORDER BY cnt DESC