首页 / SQLite / 正文

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

13538 发布于: 2015-11-12 读完约需7分钟
在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按天统计出每天中的最后一条记录的时间。 最终的查询结果如我们上面预期所见: sqlite-query-last-data-each-day

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: MySQL使用SQL语句查询指定数据库中各个(每个)表的行数,大小以及创建时间等信息

下一篇: [后台系统模板]精美的基于Bootstrap+Angularjs+Requirejs的响应式管理模板UI

本文永久链接码友网 » Sqlite数据库按天分组统计查询表中每天的最后一条数据记录

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册