按日期的Sqlite组获取该日期的最新行值

时间:2017-04-08 13:05:31

标签: sqlite

我们以此为例:

Select date, sum(field1), max(field2)
 from table
group by date
order by date

我们还要说,在我的表中每个日期我有2-3行,所以:

|   date   | field1 | field2  | 
-------------------------------
|01-01-2017| 4      | 34      |
|01-01-2017| 5      | 37      |
|01-01-2017| 3      | 33      |
|01-02-2017| 15     | 41      |
|01-02-2017| 13     | 39      |

我上面的选择将返回

|   date   | field1 | field2  | 
|01-01-2017| 12     | 37      |
|01-02-2017| 28     | 41      |

我想为每个日期获取field2最后插入的值,所以 第一个日期为33,第二个日期为39。

获取结果的简单方法是什么?只需删除max for field2工作,查询将采用最后一个值? 如果重要的话,我在android上使用Sqlite。

LE:表也有id自动增量字段作为主键。

1 个答案:

答案 0 :(得分:1)

RDBMS中的表是一组无序行。您必须定义“最新”行的含义。

假设您的表中有一个自动递增的id列,您可以根据该列确定“最新”行(即具有最大ID的行):

select date,
    sum(field1),
    (
        select field2
        from your_table t2
        where t.date = t2.date
        order by id desc limit 1
        ) as field2
from table t
group by date
order by date