mysql 按天分组统计数据_Sqlite数据库按天分组统计查询表中每天的最后一条数据记录...

在SQL查询中,统计、分组是经常会遇到的需求。小型的数据库如:Access,Sqlite 数据库,大型的数据库如:SQL Server,Oracle以及MySQL等等。本文将会给大家分享下如题所说的统计、分组查询:Sqlite按天分组查询每天的最后一条数据记录,首先我们来看一下数据表的示例数据:

首先,我们用SQL语句来创建示例表MyTemp

CREATE TABLE MyTemp(

Name VARCHAR,

Quantity INTEGER,

CreatedOn DATETIME

)

其次,用INSERT INTO向示例表MyTemp中批量插入数据:

INSERT INTO MyTemp (Name,Quantity,CreatedOn) VALUES ('Name1',20,'2015-11-01 01:01:00');

INSERT INTO MyTemp (Name,Quantity,CreatedOn) VALUES ('Name2',25,'2015-11-01 10:30:00');

INSERT INTO MyTemp (Name,Quantity,CreatedOn) VALUES ('Name3',24,'2015-11-01 12:35:00');

INSERT INTO MyTemp (Name,Quantity,CreatedOn) VALUES ('Name4',30,'2015-11-01 20:30:00');

INSERT INTO MyTemp (Name,Quantity,CreatedOn) VALUES ('Name5',28,'2015-11-02 01:00:00');

INSERT INTO MyTemp (Name,Quantity,CreatedOn) VALUES ('Name6',63,'2015-11-02 12:20:00');

INSERT INTO MyTemp (Name,Quantity,CreatedOn) VALUES ('Name7',15,'2015-11-02 23:01:00');

在准备好数据之后,我们的预期需求结果是:

Name                       Quantity                            CreatedOn

Name4                      30                                     2015-11-01 20:30:00

Name7                      15                                     2015-11-02 23:01:00

最后,我们结合需求写出统计每天的最后一条数据的SQL查询语句:

SELECT A.Name,A.Quantity,A.CreatedOn

FROM

MyTemp AS A

JOIN (SELECT MAX(X.CreatedOn) 'MaxTimeStamp'

FROM MyTemp AS X

GROUP BY DATE(X.CreatedOn)) AS T ON T.MaxTimeStamp=A.CreatedOn

以上的SQL查询语句中使用了JOIN连接查询以及GROUP BY的分组统计查询,其中GROUP BY 的主要作用是结合MAX按天统计出每天中的最后一条记录的时间。

最终的查询结果如我们上面预期所见:

f541dac631934cc84dccec76d726635e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值