2010-12-11 45 views
1

我有一個像這樣的表id, name, datetime可能每天存儲多個條目,現在我正在尋找一種方法來在一個查詢中選擇數量最高的日期。按照MySQL中條目的數量排序

到目前爲止,我正在通過所有條目進行循環,並將$highest整數與每個值進行比較,但必須使用一個SQL查詢更簡單。想法任何人?

更新

表基本上看起來像這樣

 
id, name, datetime 
1, test, 2010-12-01 12:12:12 
2, test2, 2010-11-30 12:12:12 
3, test3, 2010-11-30 13:13:13 
4, test4, 2010-10-29 12:12:12

結果將需要2010-11-30因爲有從特定的一天兩個條目,它實際上是「最高的一天「(或入場次數最多的一天)。

+1

的答覆,你現在已經看起來是正確的。 「沒有按照希望工作」是什麼意思? – 2010-12-11 09:07:07

+0

這兩個腳本都不會返回輸入數量最高的日期 – baik 2010-12-11 09:10:44

+1

我已經爲您的4個測試行創建了一個臨時表,並運行了現有答案中的查詢,並提供了您要求的結果(2010-11-30) 。 – 2010-12-11 09:10:44

回答

3

試試這個:

SELECT DATE(`datetime`) AS `date` 
FROM your_table 
GROUP BY `date` 
ORDER BY COUNT(*) DESC 
LIMIT 1 
+0

不幸的是,這並沒有像希望的那樣工作,我的問題可能是誤導,我相應地更新了它。 – baik 2010-12-11 08:58:48

+1

該查詢返回'| 2010-11-30 |'這是入場次數最多的日期。這就是你要求的。 – 2010-12-11 09:12:39

+0

現在就像一個魅力,我的錯誤,我也'datetime'標籤的'日期'列,這並沒有解決。 – baik 2010-12-11 09:14:18

4
SELECT id, name, DATE(`datetime`) AS `date`, COUNT(*) AS `count` 
FROM things 
GROUP BY `date` 
ORDER BY `count` DESC 

如果您只想要最高的一天,請在結尾處添加LIMIT 1

請注意,idname將來自當天的隨機記錄。如果您想要在特定日期的所有記錄,則需要運行其他查詢或使用子查詢。

+0

不幸的是,這並沒有像希望的那樣工作,我的問題可能是誤導,我相應地更新了它。 – baik 2010-12-11 08:56:19

+0

該查詢返回:'| 2 | test2 | 2010-11-30 | 2 |'是與入場次數最多的日期對應的行。這就是你要求的。 – 2010-12-11 09:12:20

+0

現在與COUNT(*)一起工作,謝謝! – baik 2010-12-11 09:14:43