如何在SQL(sqlite)中比较来自相同时间戳的结果



我在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;

最新更新