Maison > Questions et réponses > le corps du texte
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 ?
天蓬老师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;
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