2017-06-22 119 views
0

我試圖使用一些條件來計算Id。Mysql計數與Where子句不同

這是我的初步查詢:

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) 

所以我的問題是沒有得到zone_id!=1部分。

當我使用zone_id=1執行相同的查詢時,有幾個值,但如果在第一個查詢中採用zone_id!=1,它將返回完全相同的值。

我在做什麼錯?

(我也試過使用NOT IN,結果相同)。

在此先感謝!

+0

也許'zone_id!= 1'數是作爲同一'zone_id = 1'算修改此zone_id !=1。 – Blank

+0

但是... zone_id!= 1應該將其他區域的結果正確地取走? –

+0

嘗試不帶'AND zone_id!= 1'進行計數並查看結果。我認爲你應該查詢所有結果而不進行彙總,以確認數據是否正確。 – Blank

回答

1

zone_id <> 1zone_id NOT LIKE '1'

+0

嘗試過,但返回相同...最後,我在NOT IN內部做了另一個選擇並返回不同的數據... –