我使用Postgres 9.1。我正在运行一个类似
的查询select count(distinct(user_id)) from users where user_id in (11,32,763,324,45,76,37,98,587);
此处user_id
列表包含600个条目。我得到的结果是597.因此列表中有3 user_id
个,users
中没有。user_id
。我如何了解这3个user_id
?
请注意,users
不是-(BOOL)isPoint:(CGPoint)point insideOfRect:(CGRect)rect
{
if ( CGRectContainsPoint(rect,point))
return YES;// inside
else
return NO;// outside
}
答案 0 :(得分:2)
DISTINCT
未定义user_id
时,您的计数查询中的 UNIQUE
才有意义。
对于您要求的查询,我们不需要它:
SELECT t.user_id
FROM unnest('{11,32,763,324,45,76,37,98,587}'::int[]) t(user_id)
LEFT JOIN users u USING (user_id)
WHERE u.user_id IS NULL;
小心NOT IN
表达式的任何一侧是否可以包含NULL值!带有长值列表的IN
/ NOT IN
也会缩放得很差。
详细说明: