Pie*_*rre 9 postgresql ruby-on-rails-3
我有一个transactions表包含category(category_id),amount(amount)和flag(managed)可以是true或false.
我想显示所有类别的列表,其中包含托管和非托管交易的总金额,例如
Category | managed_transactions | unmanaged_transactions
Cat 1 | 124000 | 54000
Cat 2 | 4000 | 0
Cat 3 | 854000 | 1000000
Run Code Online (Sandbox Code Playgroud)
有没有办法做类似的事情
Select category_id,
sum(amount) if (managed is true) as managed_transactions,
sum(amount) if (managed is false) as unmanaged_transactions
from transactions
Run Code Online (Sandbox Code Playgroud)
我显然被困在了if managed is true......
Jul*_*eau 21
请享用!
SELECT
category_id,
SUM( CASE WHEN managed THEN amount ELSE 0 END ) AS managed_transactions,
SUM( CASE WHEN managed THEN 0 ELSE amount END ) AS unmanaged_transactions
FROM
transactions
GROUP BY
category_id
ORDER BY
category_id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3629 次 |
| 最近记录: |