sql - 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
解决方案
尝试关注
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
推荐阅读
- javascript - 为什么它首先打印出“未定义”?
- javascript - sequelize.transaction() 可以将异步函数作为回调吗?
- javascript - 使用特殊字符时的随机字符串 HTML 转义问题
- r - 根据开始日期和结束日期在数据框中创建新列
- c - 在 for 循环中使用指针
- osgi - 多次安装项目时,ehcache-clustered 在 OSGi 中不起作用
- java - PSQLException:错误:“INTO”处或附近的语法错误
- c++ - 使用 lambda 函数指针强制转换时双倍释放
- sql - 如何在我的存储过程中应用转换
- r - sem() 函数 w_mat %*% p_deriv_mat %*% invMat 中的错误