【问题标题】:How to compare results from the same timestamp in SQL(sqlite)?如何比较 SQL(sqlite) 中相同时间戳的结果?
【发布时间】:2014-01-12 15:16:32
【问题描述】:

我在 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 不是很精通。

谁能告诉我如何做到这一点?

【问题讨论】:

    标签: sql sqlite join


    【解决方案1】:

    你想要条件聚合:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-19
      • 2021-03-31
      • 1970-01-01
      • 2011-05-27
      • 2018-08-20
      • 1970-01-01
      • 2016-09-16
      • 1970-01-01
      相关资源
      最近更新 更多