显示来自2个不同日期的数据

oxcyiej7  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(304)

我对sql查询非常陌生,我有一个问题。详情如下:
我有一张table:
用户表

user_id username    balance   date_updated
------------------------------------------
1       adam        100       09/10/2017
2       david       100       09/10/2017
1       adam        110       10/10/2017
2       david       120       10/10/2017
1       adam        100       11/10/2017
2       david       100       11/10/2017
1       adam        110       12/10/2017
2       david       120       12/10/2017

我想得到2017年10月9日和2017年10月12日的余额
预期结果:

username    first_date   second_date
------------------------------------
adam        100          110
david       100          120

提前谢谢!!

wi3ka0sx

wi3ka0sx1#

使用聚合函数时的用例

select username,
sum(case when date_updated='9/10/2017' then balance else 0 end) as first_date,
sum(case when date_updated='12/10/2017' then balance else 0 end) as second_date
from user_table t
group by username

我更喜欢这里 sum() 相反 max() 因为如果用户在特定日期有更多行可用,那么sum将覆盖

vql8enpb

vql8enpb2#

使用条件聚合

SELECT 
  username, 
  MAX(CASE WHEN date_updated = '2017-10-09' THEN balance END) AS first_date, 
  MAX(CASE WHEN date_updated = '2017-10-12' THEN balance END) AS second_date
FROM user_table 
GROUP BY username

相关问题