2017-08-03 51 views
0

我有一個表,將其稱爲widgets,其中有列namecreated_at等等。我想運行一個查詢,返回所有行數爲widgets的計數,它們共享相同的名稱,並且已經在一個毫秒內創建。選擇不共享名稱的SQL表的所有行

這是我已經提出的查詢,但它返回的數字大於表中的總行數,有人可以指出我要去哪裏出錯嗎?

SELECT COUNT (DISTINCT "t1"."id") 
FROM 
    "tasks" "t1" ,"tasks" "t2" 
WHERE 
    "t1"."name" = "t2"."name" 
AND 
    date_trunc('milliseconds',"t1"."created_at") = date_trunc('milliseconds',"t2"."created_at") 
+1

你加克林建議。這意味着解決這個問題,或者你已經有了這條線? –

+0

他的建議奏效了,所以我更新了我的查詢,我標記了他的答案是正確的。 – TheDelChop

+0

你不應該那樣做。因爲現在有人來了,看到問題的答案與問題相同,不知道問題出在哪裏。相反,只要接受答案,其他人就會明白解決問題 –

回答

1

你應該加上一條:

and "t1"."id" <> "t2"."id" 

其中 「ID」 是一個主鍵。在缺乏一個主鍵,你可以用ctid

and "t1".ctid <> "t2".ctid