我有一个像这样的SQL表:
>id| date |payed |amount
>1 |2015-02-02|1|5
>2 |2015-02-02|0|2
>3 |2015-02-02|1|4
>4 |2015-03-02|1|1
Run Code Online (Sandbox Code Playgroud)
付费列可以是以太0或1.如何根据日期返回"付费"(0和1)的每个选项的"金额"总和?
SELECT (sum of amount for both options of payed) FROM events WHERE date = ?
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,对于日期"2015-02-02",我应该得到2和9.
非常感谢你
如果您愿意,可以单独使用GROUP BY,但如果希望结果为同一行的2列,也可以使用SUM(CASE).
SELECT date,
SUM(case when payed = 1 then amount else 0 end) as PaidAmount,
SUM(case when payed = 0 then amount else 0 end) as UnPaidAmount
FROM events
GROUP BY DATE;
Run Code Online (Sandbox Code Playgroud)