Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[bruit]Combiner COUNT et DISTINCT avec MySQL

3 réponses
Avatar
Michel
Je tente ma chance sur ce forum ;-)

Dans le but de faire des stats de fréquentation d'un site, je cherche à
mettre au point une requete SQL
Mes enregistrements dans ma table log sont de la forme IdSession, Date,
etc...
8d6eee0eccf2cd91360ab2617fde5ed5;20050225181354

Pour un jour donné pas de Pb
SELECT COUNT(DISTINCT IdSession ) FROM `log` WHERE Date LIKE '20050225%'

J'affiche aussi tous les enreg jour par jour :
SELECT LEFT( Date, 8 ) AS jours, count( * ) FROM `log`
GROUP BY jours
Mais dans ce cas plusieurs enreg correspondent à la même session.

Je cherche à combiner ces 2 requetes afin de compter qu'un seul enreg
par session et ce pour tous les jours du mois.

J'essai donc :

SELECT LEFT( Date, 8 ) AS jours, COUNT(DISTINCT IdSession )
FROM `sql_search`
GROUP BY jours


Sous PhpMyAdmin cela semble poser un Pb, seul les 30 premiers enreg sont
affiché et il me met une info bizarre:

Affichage des enregistrements 0 - 29 (2652 total, 0 dans la requête,
traitement: 0.0220 sec.)

alors que le count(*) me remonte 62 enreg (il y a 62 jours)

Michel

3 réponses

Avatar
Johann
Euh...
En dessous de "Affichage des enregistrements 0 - 29 (2652 total, 0 dans
la requête, traitement: 0.0220 sec.)", t'aurais pas un ou deux boutons
avec le symbole > ou >> ?
Si oui, clique dessus.....
@micalement


Après mure réflexion, Michel a écrit :
Je tente ma chance sur ce forum ;-)

Dans le but de faire des stats de fréquentation d'un site, je cherche à
mettre au point une requete SQL
Mes enregistrements dans ma table log sont de la forme IdSession, Date,
etc...
8d6eee0eccf2cd91360ab2617fde5ed5;20050225181354

Pour un jour donné pas de Pb
SELECT COUNT(DISTINCT IdSession ) FROM `log` WHERE Date LIKE '20050225%'

J'affiche aussi tous les enreg jour par jour :
SELECT LEFT( Date, 8 ) AS jours, count( * ) FROM `log`
GROUP BY jours
Mais dans ce cas plusieurs enreg correspondent à la même session.

Je cherche à combiner ces 2 requetes afin de compter qu'un seul enreg par
session et ce pour tous les jours du mois.

J'essai donc :

SELECT LEFT( Date, 8 ) AS jours, COUNT(DISTINCT IdSession )
FROM `sql_search`
GROUP BY jours


Sous PhpMyAdmin cela semble poser un Pb, seul les 30 premiers enreg sont
affiché et il me met une info bizarre:

Affichage des enregistrements 0 - 29 (2652 total, 0 dans la requête,
traitement: 0.0220 sec.)

alors que le count(*) me remonte 62 enreg (il y a 62 jours)

Michel



--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Avatar
Michel
Johann a écrit :
Euh...
En dessous de "Affichage des enregistrements 0 - 29 (2652 total, 0 dans
la requête, traitement: 0.0220 sec.)", t'aurais pas un ou deux boutons
avec le symbole > ou >> ?
Si oui, clique dessus.....



S'il te plait ne soit pas désagrable, je ne suis pas si obtu que cela et
je ne fume pas ma moquette non plus. ;-)

Avec la requete COUNT(*)
Affichage des enregistrements 12 - 41 (62 total, traitement: 0.0086 sec.)
bouton > et >> présent et posibilité de définir le nombre
d'enregistrement et le n° d'enregistrement de départ --->(Normal donc)


Avec la requète COUNT(DISTINCT IdSession)

les Boutons ont disparus, l'info ferait croire qu'il y a 2652 enreg
(c'est le nombre total d'enreg dans le fichier) alors que le nombre
devrait être identique 62
et toutes les valeurs que je tente d'entrer dans la zone "à partir de
l'enregistrement"
me retourne l'erreur :
Ce n'est pas un nombre valide.

Je suppute donc un Pb d'interprétation de ma requète

Michel
Avatar
Johann
Michel a couché sur son écran :
S'il te plait ne soit pas désagrable, je ne suis pas si obtu que cela et je
ne fume pas ma moquette non plus. ;-)



Je voulais pas être désagréable, mais j'ai eu le cas d'un stagiaire il
y a peu qui m'a fait le coup...
;)
Sinon, je vois pas pour ton problème...
Désolé, Johann.

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net