SQL统计属于某个帐户的每个产品的用户数

SQL统计属于某个帐户的每个产品的用户数,sql,postgresql,Sql,Postgresql,我有一段关系: Product -- 1-----* -- User --* ----- 1-- Account 我想列出属于某个帐户的每个产品的用户数 例如: Product_1 User_1 Account_1 Product_1 User_2 Account_1 Product_2 User_3 Account_1 Product_3 User_3 Account_2 Product_4 NULL NULL 我希望结果是: Product_1 2 Product

我有一段关系:

Product -- 1-----* -- User --* ----- 1-- Account
我想列出属于某个帐户的每个产品的用户数

例如:

Product_1  User_1  Account_1
Product_1  User_2  Account_1
Product_2  User_3  Account_1
Product_3  User_3  Account_2
Product_4  NULL    NULL
我希望结果是:

Product_1 2
Product_2 1
Product_3 0
Product_4 0
我有一个答案,但不幸的是它是不正确的。请帮我一把。谢谢

SELECT p.id, COUNT(users.id)) 
FROM products p
LEFT JOIN users ON p.id = users.product_id
WHERE users.account_id = 1
GROUP BY p.id
试着跟随

SELECT p.id, count(CASE WHEN user.account_id = 1 THEN 1 END) FROM products p
LEFT JOIN users 
ON p.id = user.product_id
GROUP BY p.id
试着跟随

SELECT p.id, count(CASE WHEN user.account_id = 1 THEN 1 END) FROM products p
LEFT JOIN users 
ON p.id = user.product_id
GROUP BY p.id

您需要将
帐户id上的测试移动到
左连接的
上的
条件中,否则它将变成
内部连接。试试这个(我假设您的
users
表名为
users
,您的查询不清楚,因为您同时使用
users
user
):


您需要将
帐户id上的测试移动到
左连接的
上的
条件中,否则它将变成
内部连接。试试这个(我假设您的
users
表名为
users
,您的查询不清楚,因为您同时使用
users
user
):


谢谢你的回答。它工作正常,但性能不如另一个。谢谢你的回答。它工作正常,但性能不如另一个。Cheers@Stephen不用担心-我很高兴我能帮上忙。@Stephen不用担心-我很高兴我能帮上忙。