Rumah > Soal Jawab > teks badan
Terdapat jadual iklan iklan(id_iklan, tarikh, kiraan), data adalah seperti berikut:
Saya perlu mengira bilangan klik setiap hari untuk 10 iklan teratas dalam tempoh masa tertentu.
Hasil pertanyaan sepatutnya terdapat 10 keping data dengan advertise_id yang berbeza setiap hari Bagaimana SQL ini harus ditulis?
天蓬老师2017-05-17 10:10:03
Terdapat masalah bahawa bilangan klik pada tarikh pengiklanan yang tidak muncul dalam rekod tidak dipaparkan. Jika anda ingin memaparkannya, anda perlu membina bahagian data ini terlebih dahulu gunakan sql berikut
select a.* from advertise a join (select advertise_id,sum(count) sm from advertise group by advertise_id order by sm desc limit 10) b on a.advertise_id=b.advertise_id where a.date BETWEEN 20170403 AND 20170420 order by a.date,a.count;
ringa_lee2017-05-17 10:10:03
SELECT s.date,s.advertise_id,s.count FROM advertise_stat s
WHERE
EXISTS (
SELECT advertise_id FROM (SELECT advertise_id FROM advertise_stat GROUP BY advertise_id ORDER BY count DESC LIMIT 10) AS advertise_temp
WHERE advertise_id = s.advertise_id
)
AND s.date BETWEEN 20170403 AND 20170420
ORDER BY s.date ASC,s.count DESC
Sepatutnya begini