我有 2 个表,person(email, first_name, last_name, postcode, place_name)
和 location(postcode, place_name)
。我试图找到住在只有一个人居住的地方的人。我尝试使用 SELECT COUNT()
但失败了,因为我不知道在这种情况下要计算什么。
SELECT DISTINCT email,
first_name,
last_name
FROM person
INNER JOIN location USING(postcode,
place_name)
WHERE 1 <=
(SELECT COUNT(?))
最佳答案
聚合函数总是伴随着having
:
SELECT DISTINCT first_value(email) over (partition by place_name),
first_value(first_name) over (partition by place_name),
first_value(last_name) over (partition by place_name),
count(*)
FROM person
INNER JOIN location USING(postcode,
place_name)
GROUP BY place_name
HAVING count(*) = 1
有关窗口函数(如 first_value
)的更多信息,请查看 this tutorial .
关于sql - 如何查找只有一个值的列 - Postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58880045/