Postgresql 如何在博士后身上做到这一点?
我有一个这样的桌子结构Postgresql 如何在博士后身上做到这一点?,postgresql,postgresql-9.3,Postgresql,Postgresql 9.3,我有一个这样的桌子结构 id status action amount fid 1 P Yes 3000 10 2 P No 2000 10 3 P Yes 6000 10 4 D Yes 500 10 5 D No 600 10 6 V Yes 800 10 我想用-->状态p操作是、状态D操作否和状态V操作是进行一次筛选。结
id status action amount fid
1 P Yes 3000 10
2 P No 2000 10
3 P Yes 6000 10
4 D Yes 500 10
5 D No 600 10
6 V Yes 800 10
我想用-->状态p操作是、状态D操作否和状态V操作是进行一次筛选。结果将基于fid
这样的输出-->
假设您只打算报告上述示例数据中显示的三种状态,我们可以尝试:
SELECT
fid,
SUM(amount) FILTER (WHERE status = 'P' AND action = 'Yes') AS amount_1,
SUM(amount) FILTER (WHERE status = 'D' AND action = 'No') AS amount_2,
SUM(amount) FILTER (WHERE status = 'V' AND action = 'Yes') AS amount_3
FROM yourTable
GROUP BY fid;
假设您只想报告上述样本数据中显示的三种状态,我们可以尝试:
SELECT
fid,
SUM(amount) FILTER (WHERE status = 'P' AND action = 'Yes') AS amount_1,
SUM(amount) FILTER (WHERE status = 'D' AND action = 'No') AS amount_2,
SUM(amount) FILTER (WHERE status = 'V' AND action = 'Yes') AS amount_3
FROM yourTable
GROUP BY fid;
谢谢你@Tim Biegeleisen。我得到了想要的结果。谢谢你@Tim Biegeleisen。我得到了期望的输出。