Select 行,所有孩子只有一种状态
Select rows with all childrens with only one status
我寻求有关创建 SQL 脚本的帮助。
我有这样的数据:
table 'plans' 与 'plan_id'
table 'transactions' 和 'transaction_status'
计划和交易是one-to-many,意味着计划可以有很多交易
我想阅读所有 plan_ids,但只有成功状态为 100% 的
我的实际情况比这复杂,但我现在有这样的问题要解决。
下面是 PostgreSQL 的 post 查询示例。你可以将它应用到你的版本中:
SELECT
plans.id,
COUNT(plan_id) all_transactions,
SUM(CASE WHEN success THEN 1 ELSE 0 END) success_transactions
FROM plans
JOIN transactions ON transactions.plan_id = plans.id
GROUP BY plans.id
HAVING COUNT(plan_id) = SUM(CASE WHEN success THEN 1 ELSE 0 END)
;
我寻求有关创建 SQL 脚本的帮助。 我有这样的数据:
table 'plans' 与 'plan_id' table 'transactions' 和 'transaction_status'
计划和交易是one-to-many,意味着计划可以有很多交易
我想阅读所有 plan_ids,但只有成功状态为 100% 的
我的实际情况比这复杂,但我现在有这样的问题要解决。
下面是 PostgreSQL 的 post 查询示例。你可以将它应用到你的版本中:
SELECT
plans.id,
COUNT(plan_id) all_transactions,
SUM(CASE WHEN success THEN 1 ELSE 0 END) success_transactions
FROM plans
JOIN transactions ON transactions.plan_id = plans.id
GROUP BY plans.id
HAVING COUNT(plan_id) = SUM(CASE WHEN success THEN 1 ELSE 0 END)
;