【发布时间】:2020-09-28 22:16:07
【问题描述】:
我又回来了,哈哈,我正在尝试计算以下内容:
找出有多少用户在过去 30 天内至少有一次余额超过 2000 英镑,因此应该通过贷记借记来获取每个用户的余额。
我尝试了以下,基本上是自连接,但输出缺少值。
SELECT user_id, (credit_amount - debit_amount) AS balance
FROM (SELECT A.user_id, A.type, B.type, A.amount AS debit_amount, B.amount AS credit_amount
FROM public.transaction A, public.transaction B
WHERE A.user_id = B.user_id
AND a.type LIKE 'debit'
AND b.type LIKE 'credit'
AND A.created_at >= CURRENT_DATE - INTERVAL '30 days'
AND A.created_at <= CURRENT_DATE) AS table_1
WHERE (credit_amount - debit_amount) > 2000
;
但是,user_id 3 由于在时间间隔内没有信用而被跳过,并且一些值被遗漏了。任何帮助都会很好,谢谢。
【问题讨论】:
标签: sql postgresql date pivot window-functions