2009-06-30 7 views
1

droite, une autre question sur les requêtes (il doit y avoir un guide de syntaxe plus utile que le manuel de mySQL, sûrement?)obtenir des résultats non distincts d'une requête distincte mysql

J'ai cette requête (d'une autre réponse utile sur le SO) ...

SELECT DATE_FORMAT(`when`, '%e_%c_%Y')date, COUNT(`ip`) AddressCount FROM `Metrics` WHERE `ID` = '1' GROUP BY DATE(`when`) 

Je veux maintenant faire une requête similaire pour obtenir des résultats uniques/distincts pour les adresses IP ... ie visiteurs uniques par jour. Ma requête était ce ...

SELECT DATE_FORMAT(`when`, '%e_%c_%Y')date, COUNT(distinct `ip`) AddressCount FROM `Metrics` WHERE `ID` = '1' GROUP BY DATE(`when`) 

Cependant, qui renvoie une répétition de dates, bien que différentes quantités de Addresscount ...

date AddressCount 
29_6_2009 1 
30_6_2009 1 
29_6_2009 1 
30_6_2009 1 
29_6_2009 1 
NULL 1 
15_5_2009 1 
14_5_2009 2 
NULL 3 
14_5_2009 4 
15_5_2009 1 
26_6_2009 1 
29_6_2009 1 
26_6_2009 1 
15_5_2009 1 
26_6_2009 1 
29_6_2009 1 

Toutes les idées sur où je vais mal?

Répondre

2

Votre groupe en aura besoin de faire correspondre les données vous choisissez, ce qui devrait fonctionner:

SELECT DATE_FORMAT(`when`, '%e_%c_%Y')date, COUNT(distinct `ip`) AddressCount FROM `Metrics` WHERE `ID` = '1' GROUP BY date 
+0

Hello Whisk. J'ai effectivement essayé cela aussi, mais bien qu'il semble retourner un résultat correct, en renvoyant seulement un résultat pour une date le 29/06/09 il renvoie 7. – waxical

+0

Désolé, je ne suis pas sûr de ce que vous voulez dire - il renvoie les résultats, mais lorsque vous les comparez avec les données, cela est incorrect? – Whisk

+0

Je veux dire que je reçois un résultat unique, un résultat correct .... mais seulement un résultat unique. Pour le 29/06/09, il renvoie 7. – waxical

0

Essayez

SELECT DATE_FORMAT (when, '% e_% c_% Y') Date, COUNT (AddressCount distinct ip) à partir de MetricsID = '1' GROUP BY Date (quand)

Vous avez peut-être rencontré des bogues lors de l'utilisation de mots réservés dans MySQL

+0

quand est un mot reserverd donc il doit être coché en arrière ... avec des backticks sur cette requête, il renvoie mon résultat de problème d'origine:/ Merci pour regarder, d'autres idées? – waxical

Questions connexes