假如有一个订单表,其中包含如下的字段:id,order_no,created_at,price等等。在SQL Server数据库中,如何编写计算当天数据与前一天数据对比的SQL脚本语句呢?
id
order_no
created_at
price
Rector
2023-03-01 提问
如果每天只有一条记录,则可以使用自连接查询完成本题的需求,建表SQL脚本如下:
测试用例数据:
计算当天数据与前一天数据对比的SQL脚本语句统计SQL脚本如下:
查询结果:
在这个示例中,我们创建了一个名为mytable的表,其中包含一个日期列mydate和一个值列myvalue。
mytable
mydate
myvalue
我们插入了一些测试数据,其中包含5天的数据。然后,我们使用自连接来比较每天和前一天的值,并输出这两天的值。结果表明,每一天的值和前一天的值(如果有的话)都被正确地匹配。
2023-03-01 回答
如果是每天包含多条数据,则直接使用自连接是不可行的。需要先按天分组(GROUP BY),然后再自连接。
建表SQL脚本及示例数据如下:
使用CTE实现的统计查询SQL语句如下:
输出结果:
码龄: 3167天
专注.NET/.NET Core