Bonjour à tous,
Je bloque depuis longtemps maintenant sur ma requête sql qui me donne les stats de ma régie publicitaire home-made :
Cette requête m'affiche bien mes bannières par CTR (taux de clic le plus élevé).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT * FROM stats INNER JOIN banners ON banners.id=stats.idA INNER JOIN pages ON pages.id=stats.idB WHERE pages.actif != '0' GROUP BY pages.site ORDER BY (SUM(clic) / (SUM(aff)/100)) DESC LIMIT 0,9
Dans ma table BANNERS j'ai :
id / idA / idB / aff / clic
idA représente une bannière
idB représente l'id d'un page web.
Donc dans idA j'ai plusieurs fois la même bannière bien sûr !
Tout marche bien, oui mais voilà, j'aimerais que ma requête ne m'affiche QUE les bannières ayant été affichées AU MOINS 100 fois !
Et ça ne marche pas.
Cette requête, avec aff > 100, ne marche pas :
Elle prend en compte la 1re ligne aff, je crois, alors que je les veux TOUTES pour une bannière donnée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT * FROM stats INNER JOIN banners ON banners.id=stats.idA INNER JOIN pages ON pages.id=stats.idB WHERE pages.actif != '0' AND aff>100 GROUP BY pages.site ORDER BY (SUM(clic) / (SUM(aff)/100)) DESC LIMIT 0,9
Cette requête, avec sum(aff), m'affiche une erreur (Invalid use of group function)
je bloque vraiment, je ne trouve aucune solution, quelqu'un pourrait-il m'aider ? merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT * FROM stats INNER JOIN banners ON banners.id=stats.idA INNER JOIN pages ON pages.id=stats.idB WHERE pages.actif != '0' AND SUM(aff)>100 GROUP BY pages.site ORDER BY (SUM(clic) / (SUM(aff)/100)) DESC LIMIT 0,9
Partager