我需要查找按日期分組的項目最常見的情況,並顯示所有項目的總數以及此項目的名稱。在單個查詢中可以這樣做嗎?請注意:如果它們全部相同(請參閱Insert中的最後3行),那麼我可以隨機顯示或第一次或最後一次出現(以最簡單的形式爲準)。mySQL查詢 - 顯示最受歡迎的項目
如果這不能在sql中完成,那麼將不得不通過結果運行並通過PHP對數據進行排序,這似乎是相當混亂。
編輯:對不起,我錯誤的'2009'08-04'總計。它應該是4
什麼,我需要一個例子:
+------------+---------------------+-------+ | date | item | total | +------------+---------------------+-------+ | 2009-08-02 | Apple | 5 | | 2009-08-03 | Pear | 2 | | 2009-08-04 | Peach | 4 | | 2009-08-05 | Apple | 1 | | 2009-08-06 | Apple | 3 | +------------+---------------------+-------+
下面是一個例子表:
CREATE TABLE IF NOT EXISTS `test_popularity` ( `date` datetime NOT NULL, `item` varchar(256) NOT NULL, `item_id` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `test_popularity` (`date`, `item`, `item_id`) VALUES ('2009-08-02 00:00:00', 'Apple', 1), ('2009-08-02 00:00:00', 'Pear', 3), ('2009-08-02 00:00:00', 'Apple', 1), ('2009-08-02 00:00:00', 'Apple', 1), ('2009-08-02 00:00:00', 'Pear', 0), ('2009-08-03 00:00:00', 'Pear', 3), ('2009-08-03 00:00:00', 'Peach', 2), ('2009-08-04 00:00:00', 'Apple', 1), ('2009-08-04 00:00:00', 'Peach', 2), ('2009-08-04 00:00:00', 'Peach', 2), ('2009-08-04 00:00:00', 'Pear', 3), ('2009-08-05 00:00:00', 'Apple', 1), ('2009-08-06 00:00:00', 'Apple', 1), ('2009-08-06 00:00:00', 'Peach', 2), ('2009-08-06 00:00:00', 'Pear', 3);
如果不知道每個項目應選擇哪個日期,或者如果這確實很重要,則無法真正回答這個問題。 – 2009-08-06 20:05:01
咦?他希望每個日期最受歡迎。這就是我解釋的方式:「我需要找到按日期分組的項目中最常見的事件」 – hobodave 2009-08-06 20:11:26
我需要按日期字段進行分組,在這種情況下每行都是該日期的「摘要」。 – kenitech 2009-08-06 20:12:03