Statisque sur une table SQL
Nass2
-
doumham Messages postés 130 Statut Membre -
doumham Messages postés 130 Statut Membre -
Bonjour,
J'essaye d'effectuer une requête sur une base de statistique d'un email (affichage avec de l'ASP)
le but étant de savoir combien de personne on bien reçu le mail, combien on ouvert celui-ci, combien on cliquer sur le lien... etc
la base est déjà remplis (avec des données de tests mais le remplissage j'en fais mon affaire)
le hic c'est dans le cas ou l'utilisateur ouvre 2 fois le mail. a ce moment la il apparait 2 fois dans la base de donnée (avec date et heure) dans le but d'avoir des stats au jour et voir plus précis (selon le cahier des charges) jusque la aucun problème
maintenant si je veux savoir combien de personne on ouvert le mail (dans le principe) il faut faire un :
avec cette methode je recolte aussi les doublons donc je peu faire :
cette methode fonction bien mais necessite d'effectuer une boucle sur le resultat pour compté le nombre de réponse.
Maintenant si je veux rajouté le tri sur la date :
ne marche pas parce que date n'est pas dans la clause group by ou dans une fonction d'agregation (erreur SQL server)
Pourrai fonctionner mais j'ai besoin de pouvoir effectuer d'autres tests que egalité et donc dans ce cas des doublons vont de nouveau apparaitre
celle-ci ne supprime aucun doublons
Voila en gros je pense avoir était clair sur ce que je désire faire.
Le probleme en résumé : je n'arrive pas a obtenir le nombre de personne unique qui ont ouvert mon mail sachant qu'une personne peu apparaitre plusieur fois dans la base et que donc elle ne doit apparaitre qu'une seul fois...
Merci d'avance pour ceux qui m'aideront
J'essaye d'effectuer une requête sur une base de statistique d'un email (affichage avec de l'ASP)
le but étant de savoir combien de personne on bien reçu le mail, combien on ouvert celui-ci, combien on cliquer sur le lien... etc
la base est déjà remplis (avec des données de tests mais le remplissage j'en fais mon affaire)
le hic c'est dans le cas ou l'utilisateur ouvre 2 fois le mail. a ce moment la il apparait 2 fois dans la base de donnée (avec date et heure) dans le but d'avoir des stats au jour et voir plus précis (selon le cahier des charges) jusque la aucun problème
maintenant si je veux savoir combien de personne on ouvert le mail (dans le principe) il faut faire un :
SELECT count(id) FROM stats where action='ouvert'
avec cette methode je recolte aussi les doublons donc je peu faire :
SELECT count(id) FROM stats Group by id,action HAVING action = 'ouvert'
cette methode fonction bien mais necessite d'effectuer une boucle sur le resultat pour compté le nombre de réponse.
Maintenant si je veux rajouté le tri sur la date :
SELECT count(id) FROM stats Group by id,action HAVING action = 'ouvert' and date = ladate
ne marche pas parce que date n'est pas dans la clause group by ou dans une fonction d'agregation (erreur SQL server)
SELECT count(id) FROM stats Group by id,action,date HAVING action = 'ouvert' and date = ladate
Pourrai fonctionner mais j'ai besoin de pouvoir effectuer d'autres tests que egalité et donc dans ce cas des doublons vont de nouveau apparaitre
SELECT count(id) FROM stats WHERE action='ouvert' and date <= ladate
celle-ci ne supprime aucun doublons
Voila en gros je pense avoir était clair sur ce que je désire faire.
Le probleme en résumé : je n'arrive pas a obtenir le nombre de personne unique qui ont ouvert mon mail sachant qu'une personne peu apparaitre plusieur fois dans la base et que donc elle ne doit apparaitre qu'une seul fois...
Merci d'avance pour ceux qui m'aideront
A voir également:
- Statisque sur une table SQL
- Table ascii - Guide
- Table des matières word - Guide
- Table des caractères - Guide
- Logiciel sql - Télécharger - Bases de données
- Tableau croisé dynamique ou table de pilote - Guide
3 réponses
Salut le probleme est venu lors l'envoie de la requete a la base de donnees quand l'utilisateur ouvre le mail pour la 2eme fois.
c.à.d. quand l'utilisateur ouvre pour la 2eme fois le mail, tu dois modifier les infos de cet utilisateur dans la table 'stats' et ne d'ajouter une nouvelle 'stats'
c.à.d. quand l'utilisateur ouvre pour la 2eme fois le mail, tu dois modifier les infos de cet utilisateur dans la table 'stats' et ne d'ajouter une nouvelle 'stats'
mais j'ai besoin de faire des stats en fonction des jours et heure d'ouverture donc malheureusement les utilisateurs apparaissent forcement en doublons a moins de modifier la structure de la colonne date pour permettre l'ajout de plusieurs dates avec un délimiteur et donc de parser ensuite ce résultat (oula un peu galere non ?)