Ben tarihe göre gruplandırılmış bir öğenin en popüler oluşumunu bulmak ve bu maddenin adı ile birlikte tüm öğelerin toplamı görüntülemek gerekir. Tek bir sorguda olası böyle bir şey mi?
not: onlar sadece (en kolay hangisi) rastgele ya ilk ya da son olayda gösterebilir daha (takma, son 3 satır bakınız) eşit geçtiği her iseniz.
Bu sql yapılabilir yapamıyorsanız o zaman oldukça dağınık olacak gibi görünüyor hangi sonucu ile çalıştırmak zorunda ve PHP ile verileri sıralamak olacaktır.
Düzenleme: Üzgünüm, ben ''2009 '08-04 için yanlış toplam vardı. Bu 4 olmalıdır.
Ben ne gerek bir örnek:
+------------+---------------------+-------+ | 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 | +------------+---------------------+-------+
İşte bir örnek tablo:
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);