问题场景
假设本地sqlite数据中存储有一批快递数据,现要按日期将这组数据进行分组显示日期及数量,然后第二层再按快递公司进行分组显示快递公司及相应的数量,最后再显示某家快递公司某天的明细。
问题分析
容易得知,这里会涉及到三个不同的需求,会产生三个列表数据,需要三个数据库查询操作方法。
解决方法
按日期数据分组汇总(最近7天的数据)
1 | SELECT date(createTime,'unixepoch'),count(_id) FROM postExpressData GROUP BY date(createTime,'unixepoch') ORDER BY createTime desc limit 7 |
按日期、公司数据分组汇总
1 | SELECT companyId,companyName,count(_id) FROM postExpressData where date(createTime,'unixepoch')='2017-09-07' GROUP BY companyId ORDER BY createTime desc |
按日期、快递公司数据明细
1 | SELECT expressId FROM postExpressData where date(createTime,'unixepoch')='2017-09-07' AND companyId='109' ORDER BY createTime desc |
以上是实现需求的核心SQL语句,只需要执行即可。另外,”unixepoch”是对时间戳的解释,date再将时间戳转换为年月日日期。
SQLite 日期 & 时间