La SUM des COUNT ???

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 - 21 févr. 2006 à 12:07
hamzasabri Messages postés 2 Date d'inscription samedi 24 avril 2010 Statut Membre Dernière intervention 1 mai 2010 - 1 mai 2010 à 17:49
Bonjour,

voici deux tables :

create table PAGE (
IDPAGE INT AUTO_INCREMENT not null,
URL VARCHAR(255) null, constraint PAGE_PK primary key (IDPAGE) );

create table VISITE (
TICPASS INT not null,
PASS INT not null,
IDPAGE INT AUTO_INCREMENT not null,
IP VARCHAR(255) not null,
DATEPASS DATE not null,
IDSOURCE CHAR(10) not null, constraint VISITE_PK primary key (IDSOURCE, IDPAGE, IP, DATEPASS) );

je fais la requete suivante :

SELECT URL AS Nom, COUNT( Visite.IdPage ) AS Total
FROM Page
LEFT JOIN Visite
USING ( IdPage )
GROUP BY URL
ORDER BY Total DESC

Résultat :

Nom Total
/Formules.php 10
/PetitDej.php 8
/Infos.php 7
/Boissons.php 6
/index.php 5
/Index.php 4
/Desserts.php 2
/SalonThe.php 2
/Vins.php 2
/SalonThe.php?lng=fr&pag=dcr 2
/Index.php?lng=fr 2
/LivreOr.php 1
/Plats.php 1
/Formules.php?lng=fr 1
/Event.php?lng=fr 1
/Entrees.php?lng=fr 1
/Plats.php?lng=fr 1
/Desserts.php?lng=fr 1
/Desserts.php?lng=ru 1
/Desserts.php?lng=en 1
/Boissons.php?lng=fr 1
/SalonThe.php?lng=fr 1
/PetitDej.php?lng=fr&pag=fcp 1
/PetitDej.php?lng=fr&pag=fxp 1
/Vins.php?lng=fr 1
/PetitDej.php?lng=fr 1

La liste des pages et le nombre de visites qu'elles ont reçus.

Je voudrais que le calcul soit plus complet, et que la colonne total soit le pourcentage de visites et non le nombre de fois, c'est à dire le total trouvé sur chaque ligne divisé par la sommedes totaux (10 /(10+8+7...) As Total)

Si une âme charitable veux bien partager son savoir et m'indiquer comment je peux faire la somme des comptes, je lui en serais reconnaissant.

Merci.

4 réponses

lijohann Messages postés 76 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 8 avril 2008 1
22 févr. 2006 à 10:31
salut tu peux essayer quelque chose du style :



SELECT URL AS Nom, COUNT( Visite.IdPage ) *100 / gdtotal

FROM (Page

LEFT JOIN Visite) cross join (select count(*) as gdtotal from visite)derivedtbl

USING ( IdPage )

GROUP BY URL

ORDER BY Total DESC
0
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
22 févr. 2006 à 11:14
Mindiell Software
0
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
22 févr. 2006 à 11:22
Mon message a disparu...
Je disais donc :
Il me semble très inaproprié de faire de ID_PAGE un auto increment dans la deuxieme table, vu qu'apparemment c'est une clef etrangere.

Mindiell Software
0
hamzasabri Messages postés 2 Date d'inscription samedi 24 avril 2010 Statut Membre Dernière intervention 1 mai 2010
1 mai 2010 à 17:49
salut
0
Rejoignez-nous