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);