计算客户平均订单间隔时遇date类型减法操作报错求助
解决SQL日期减法错误的方案
你遇到的错误是因为SQL Server不允许直接对DATE类型字段使用减号运算符计算差值。要计算两个日期之间的间隔,得用DATEDIFF()函数来实现。
修正后的SQL语句如下(以计算平均间隔天数为例,你可以根据需求替换间隔单位,比如month、year等):
SELECT CustomerID, DATEDIFF(day, MIN(SalesDate), MAX(SalesDate)) / (COUNT(*) - 1) AS AvgOrderIntervalDays FROM TrSalesHeader GROUP BY CustomerID HAVING COUNT(*) > 1
说明:
DATEDIFF(day, 起始日期, 结束日期):返回两个日期之间的天数差,第一个参数指定间隔单位,可选值包括day(天)、hour(小时)、month(月)等,按需调整即可。- 保留
HAVING COUNT(*) > 1的条件,确保只计算有至少2次订单的客户,避免出现除数为0的情况。
内容的提问来源于stack exchange,提问作者Tasya Fauzia Fitriasari
相关产品推荐
相关产品推荐

