Sorgunuz şudur:
SELECT MAX(no_hits)
FROM (SELECT count(hits) AS 'no_hits' ) FROM stats
WHERE 'date' >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH
AND zones_code IN('011242077793513596890', '011242077783866125432')
);
İşte sorgu ile yanlış bazı şeyler şunlardır:
- Sen
'no_hits'
sonra sorgu parantez kapattı.
- Sen alt sorgu için bir tablo diğer adı arz etmedi. Her türetilmiş tablo bir tablo diğer adı olmalıdır.
- Sen
DATE_SUB()
fonksiyonu için parantez kapatın vermedi.
- Sen
COUNT()
Sana bölge başına isabet toplam istiyorsanız, SUM()
kullanmak gerektiğini düşünüyorum yerlerde kullanılır.
- Her bölge ile hit alt toplamını ilişkilendirme değil; Lütfen subtotal bütün tablo için.
- Sen (
''
) 'date'
yerine tanımlayıcı sınırlandırıcıları (yani arka-tırnak) ve için dize sınırlayıcı kullanılır. Sen literal dize 'date'
bir tarih değerine, karşılaştırarak konum bir tarih değerine sütun date
karşılaştırmak ifade ederken.
@ Chaos yanıtında sorgu yakın, ama kullanmak gerektiğini düşünüyorum SUM()
:
SELECT `zones_code`, SUM(`hits`) AS `no_hits`
FROM `stats`
WHERE `date` >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
GROUP BY `zones_code`
ORDER BY `no_hits` DESC
LIMIT 1;
Sonuç 255 hit toplam, zone_code 011242077793513596890 olduğunu.
PS: Eğer Online soru sormak, kolayca test insanlar için in textual format yeterince kod ve veri kaynağı lütfen. Bazı örnek bir veri ekran tedarik ve tablo oluşturma kodunu göstermeden. Bunu doldurmak için geçerli bir CREATE TABLE
deyimi ve bir örnek INSERT
deyimi verilen vardı sanki bu kadar yararlı değildir.
CREATE TABLE IF NOT EXISTS `stats` (
`id` int(11) NOT NULL,
`zones_code` char(21) default NULL,
`date` date default NULL,
`hits` int(11) default NULL,
PRIMARY KEY (`id`)
);
INSERT INTO stats VALUES
(10, '011242077793513596890', '2009-05-11', 13),
(12, '011242077793513596890', '2009-05-12',235),
(24, '011242077793513596890', '2009-05-13', 2),
(32, '011242077793513596890', '2009-05-14', 5),
(17, '011242077783866125432', '2009-05-12',165),
(22, '011242077783866125432', '2009-05-13', 2),
(30, '011242077783866125432', '2009-05-14', 5),
(19, '011242077743853330663', '2009-05-12', 61),
(20, '011242077737314753388', '2009-05-12', 54),
(28, '011242077737314753388', '2009-05-13', 7),
(36, '011242077737314753388', '2009-05-14', 31),
(14, '011242077730456603312', '2009-05-12',240),
(26, '011242077730456603312', '2009-05-13', 2),
(34, '011242077730456603312', '2009-05-14', 5);
Yukarıdaki Ben ekran çekimde dayalı yazın buydu!
Do yourself a favor and make it easier for people to help you.