【发布时间】:2019-05-24 13:54:42
【问题描述】:
我有两张桌子:
users 只有两列:id: INT, name: TEXT
houses 包含三列:id: INT, user_id: INT, sold_at: DATE
我有一个查询用户售出的房屋数量:
SELECT users.id, COUNT(CASE WHEN houses.sold_at IS NOT NULL THEN 1 END)
FROM users
LEFT JOIN houses on houses.user_id = users.id
GROUP BY users.id
这行得通,但我想知道是否有办法在计数中没有条件。我试过这个:
SELECT users.id, COUNT(houses.id)
FROM users
LEFT JOIN houses on houses.user_id = users.id
WHERE houses.sold_at IS NOT NULL
GROUP BY users.id
但这不起作用,因为如果用户没有任何关联的房子,它就不会出现在结果集中。
我唯一的选择是对 COUNT 做条件吗?
【问题讨论】:
标签: sql postgresql count conditional-statements