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不用担心-我很高兴我能帮上忙。