Python 查找总数为负的用户数
我试图为下面的解决方案找出一个SQL查询或Python代码 有n个具有各种事务的用户ID。 每个用户ID都有多个事务。 用户ID示例Python 查找总数为负的用户数,python,sql,pandas,sqlite,transactions,Python,Sql,Pandas,Sqlite,Transactions,我试图为下面的解决方案找出一个SQL查询或Python代码 有n个具有各种事务的用户ID。 每个用户ID都有多个事务。 用户ID示例 000e88bb-d302-4fdc-b757-2b1a2c33e7d6 001926be-3245-43fa-86dd-b40ee160b6f9 每个事务都有一个类型 TOPUP Bank_Transaction P2P and a couple more 我想写一个查询,其中 (TOPUP)-(所有其他类型事务的总计)并返回所有用户ID,其中TOPUP
000e88bb-d302-4fdc-b757-2b1a2c33e7d6
001926be-3245-43fa-86dd-b40ee160b6f9
每个事务都有一个类型
TOPUP
Bank_Transaction
P2P
and a couple more
我想写一个查询,其中
(TOPUP)-(所有其他类型事务的总计)并返回所有用户ID,其中TOPUP<所有事务的总计
找到所有的用户谁有更少的充值和更多的开支
我希望我能说清楚吗?想想追加金额是正的,而其他支出是负的,那么我们只是在寻找负余额的用户
选择用户\u id
从交易
按用户id分组
总金额(当交易类型为“追加”然后是金额-金额结束时)<0
想想追加金额是正的,而其他支出是负的,那么我们只是在寻找负余额的用户
选择用户\u id
从交易
按用户id分组
总金额(当交易类型为“追加”然后是金额-金额结束时)<0
我相信以下可能会产生您想要的结果:-
WITH counter AS (
SELECT user_id
FROM transactions AS a
WHERE
coalesce((SELECT sum(amount) FROM transactions WHERE transaction_type = 'TOPUP' AND user_id = a.user_id),0.0) -
coalesce((SELECT sum(amount) FROM transactions WHERE transaction_type <> 'TOPUP' AND user_id = a.user_id),0.0)
< 0
GROUP BY user_id
)
SELECT count() FROM counter;
那么上述结果是:-
- i、 e.第一个和第三个用户的账户余额为负,而第二个用户的账户余额为正(因此不包括在统计范围内)
WITH counter AS (
SELECT user_id
FROM transactions AS a
WHERE
coalesce((SELECT sum(amount) FROM transactions WHERE transaction_type = 'TOPUP' AND user_id = a.user_id),0.0) -
coalesce((SELECT sum(amount) FROM transactions WHERE transaction_type <> 'TOPUP' AND user_id = a.user_id),0.0)
< 0
GROUP BY user_id
)
SELECT count() FROM counter;
那么上述结果是:-
- i、 e.第一个和第三个用户的账户余额为负,而第二个用户的账户余额为正(因此不包括在统计范围内)
用户id
、交易类型
和金额
?是的,有三个字段。所以有三个字段:用户id
、交易类型
和金额
?是的,有三个字段。非常感谢,迈克,这真的很有帮助@阿卡什瓦德瓦尼,很好。如果你认为答案对你有帮助,那么请勾选答案。非常感谢,迈克。这真的很有帮助@阿卡什瓦德瓦尼,很好。如果您认为答案对您有帮助,请在答案上打勾。