2014-06-19 4 views
0

J'ai besoin de trouver le nombre d'enregistrements par jour pour les 7 derniers jours, cependant, l'ip doit être unique par jour (ip ne peut pas être compté deux fois par jour).La requête MYSQL compte le nombre de valeurs distinctes par jour pour les 7 derniers jours

Ceci est ma requête jusqu'à présent. Pour le moment, il compte le nombre d'enregistrements par jour mais ne vérifie pas que l'ip est unique.

SELECT extract(DAY FROM date_visited) AS theDay, 
    count(*) AS numberOfItems 
    FROM table 
    WHERE `date_visited` >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) 
    GROUP BY extract(DAY FROM date_visited) 

Renvoie le total par jour, et non le nombre de les IP uniques par jour ...

Répondre

3

Vous devez

COUNT(DISTINCT ip) AS numberOfItems 

SQL est assez cool de cette façon.

+0

# 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'DISTINCT ip) AS numberOfItems FROM stattracker WHERE 'date_visited'> = DATE_SU' à la ligne 2 – NotJay

+0

Merci @Ollie Jones, je reçois une erreur quand je faites l'ajustement suggéré. Je n'ai pas été capable de l'exécuter correctement. Une idée de pourquoi cela peut arriver? – NotJay

+0

Vous n'avez pas dit le nom de votre colonne ip. Alors j'ai deviné. Aussi, je n'aurais pas dû mettre d'espace entre le mot "COUNT" et la parenthèse –

Questions connexes