2017-06-22 1 views
0

J'essaie d'obtenir le nombre d'IDs en utilisant certaines conditions.Mysql Count Distinct avec la clause Where

Ceci est ma requête initiale:

SELECT 
    COUNT(DISTINCT (id)) 
FROM 
    my_table 
WHERE 
    app_id = 1 
     AND zone_id != 1 
     AND presence_time_secs > 20 
     AND initial_timestamp BETWEEN '2017-05-02 00:00:00' AND '2017-05-05 00:00:00' 
group by 
    day(initial_timestamp) 

Donc mon problème est que ne reçoit pas la partie zone_id!=1.

Il y a quelques valeurs quand je fais la même requête en utilisant zone_id=1, mais si dans la première requête je prends le zone_id!=1 il retournera exactement les mêmes valeurs.

Qu'est-ce que je fais mal?

(J'ai également essayé d'utiliser NOT IN, même résultat).

Merci d'avance!

+0

Peut-être que le nombre 'zone_id! = 1' est le même que' compter zone_id = 1'. – Blank

+0

Mais ... le zone_id! = 1 devrait enlever les résultats des autres zones correctes? –

+0

Essayez de compter sans 'AND zone_id! = 1' et voyez le résultat. Je pense que vous devriez interroger tout le résultat sans agrégation pour confirmer si les données sont correctes ou non. – Blank

Répondre

1

Modifier cette zone_id !=1 avec zone_id <> 1 ou zone_id NOT LIKE '1'

+0

essayé, mais retourne la même chose ... à la fin, j'ai fait un autre choix à l'intérieur du NOT IN et renvoie des données différentes ... –