我在sqlite中有一个简单的表,如下所示:
dt | ab | price
-----------------------------
2014-01-06 21:57:00 | a | 86
2014-01-06 21:57:00 | b | 89
2014-01-06 21:58:00 | b | 84
2014-01-06 21:58:00 | a | 82
2014-01-06 21:59:00 | a | 82
2014-01-06 21:59:00 | b | 66
因此,对于每个日期时间,我都得到了'a'和'b'的价格。我现在想要一个列表,我可以很容易地比较这样的价格:
dt | price of a | price of b
----------------------------------------------
2014-01-06 21:57:00 | 86 | 89
2014-01-06 21:58:00 | 82 | 84
2014-01-06 21:59:00 | 82 | 66
我试过这个:SELECT dt, price FROM prices GROUP BY dt;
,但无济于事。我理解为什么不起作用,但我真的不知道如何正确地做到这一点。我想我需要使用连接或其他东西,但我不是那么精通SQL。
有人可以给我一个如何做到这一点的提示吗?
答案 0 :(得分:2)
您想要条件聚合:
SELECT dt,
max(case when ab = 'a' then price end) as a_price,
max(case when ab = 'b' then price end) as b_price
FROM prices
GROUP BY dt;