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

时间:2014-01-12 15:16:33

标签: sql sqlite join

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

有人可以给我一个如何做到这一点的提示吗?

1 个答案:

答案 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;