java - Kira klik harian sepuluh iklan teratas dari 20170403 hingga 20170420
世界只因有你
世界只因有你 2017-05-17 10:08:03
0
2
643

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?

世界只因有你
世界只因有你

membalas semua(2)
Peter_Zhu

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;
左手右手慢动作
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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan