Maison  >  Questions et réponses  >  le corps du texte

java - Comptez les clics quotidiens des dix principales annonces de 20170403 à 20170420

Il existe une table publicitaireadvertise(advertise_id, date, count), les données sont les suivantes :

Je dois calculer le nombre de clics par jour pour les 10 meilleures annonces sur une certaine période de temps.

Le résultat de la requête devrait être qu'il y a 10 éléments de données avec unadvert_id différent chaque jour. Comment ce SQL doit-il être écrit ?

世界只因有你世界只因有你2687 Il y a quelques jours583

répondre à tous(2)je répondrai

  • 天蓬老师

    天蓬老师2017-05-17 10:10:03

    Il y a un problème : le nombre de clics sur la date publicitaire qui n'apparaît pas dans l'enregistrement n'est pas affiché. Si vous souhaitez l'afficher, vous devez d'abord construire cette partie des données. Si elle n'est pas affichée, il suffit de la construire. utilisez le sql suivant

    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;

    répondre
    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

    Ça devrait être comme ça

    répondre
    0
  • Annulerrépondre