我在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。
谁能给我一个提示,告诉我如何做到这一点?
你需要条件聚合:
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;