我有一张表,称之为widgets
,其中包含name
列和created_at
列。我想运行一个查询,该查询返回widgets
的所有行的计数,这些行具有相同的名称并且彼此之间的毫秒创建。
这是我提出的查询,但它返回的数字大于表中的总行数,有人可以指出我出错的地方吗?
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")
答案 0 :(得分:1)
您应该添加条件:
and "t1"."id" <> "t2"."id"
其中“id”是主键。如果缺少主键,您可以使用ctid
:
and "t1".ctid <> "t2".ctid