2013-07-28 48 views
1

在一個名爲inventory的表中,我有兩列名爲food和brand的列。下面是表內容的一個例子:mysql - 查找最受歡迎的兩列值組合並按受歡迎程度排序

food  |  brand 
---------------------------- 
cookies | Pepperidge Farm 
cookies | Pepperidge Farm 
goldfish | Pepperidge Farm 
cookies | Oreo 
crackers | Ritz 
goldfish | Pepperidge Farm 
crackers | Ritz 
crackers | Ritz 
goldfish | Pepperidge Farm 
goldfish | Pepperidge Farm 

我想寫一個MySQL查詢將從表拉三個最流行的款式,品牌的組合。我遇到的麻煩是該品牌可以有多個項目,但我想要計算最受歡迎的品牌和項目,而不是最受歡迎的品牌。所以在上面的表格,查詢將返回以下的順序爲最流行最不受歡迎的(僅限於三個結果):

goldfish | Pepperidge Farm 
crackers | Ritz 
cookies | Pepperidge Farm 
+0

什麼是你的主鍵? – Strawberry

+0

檢查這一個,http://stackoverflow.com/questions/739143/how-do-i-find-the-most-common-result-in-a-column-in-my-mysql-table – Fallen

+0

@Strawberry - 主鍵是自動遞增的ID字段。 – Jen

回答

0

這裏是SQLFiddle

SELECT COUNT(*) AS `Rows`, FOOD, BRAND 
    FROM `foods` 
    GROUP BY FOOD, BRAND 
    ORDER BY `Rows` DESC