首页 > 解决方案 > SQL 计算属于某个帐户的每个产品的用户数

问题描述

我有一个关系:

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

标签: sqlpostgresql

解决方案


尝试关注

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

推荐阅读