Rumah  >  Soal Jawab  >  teks badan

java - Kira klik harian sepuluh iklan teratas dari 20170403 hingga 20170420

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?

世界只因有你世界只因有你2736 hari yang lalu621

membalas semua(2)saya akan balas

  • 天蓬老师

    天蓬老师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;

    balas
    0
  • ringa_lee

    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

    balas
    0
  • Batalbalas