具有订单日期范围的SQL客户订单查询

具有订单日期范围的SQL客户订单查询,sql,sqlite,Sql,Sqlite,我正在尝试获取一个订单报告,它不仅返回客户的订单总数,还返回另外三个字段,其中包含第一个和最后一个订单的日期,以及第一个和最后一个订单之间的范围(以天为单位) 下面的查询 SELECT customers.name, customers.customer_id, COUNT(orders.order_id) AS Orderscount FROM customers JOIN orders ON customers.customer_id = orders.cus

我正在尝试获取一个订单报告,它不仅返回客户的订单总数,还返回另外三个字段,其中包含第一个和最后一个订单的日期,以及第一个和最后一个订单之间的范围(以天为单位)

下面的查询

SELECT customers.name, 
   customers.customer_id, 
   COUNT(orders.order_id) AS Orderscount 
   FROM customers 
   JOIN orders ON customers.customer_id = orders.customer_id 
   GROUP BY customers.name,
            customers.customer_id                       
         HAVING Orderscount >= 2  
         ORDER BY Orderscount DESC
返回一个包含名称、客户id和订单总数的表

问题是,如何在这个查询中添加第一个订单、最后一个订单的日期以及两者之间的日期范围


我正在使用SQLite。

使用
MIN
MAX
获取第一个和最后一个订单日期,使用
julianday()
计算范围:

SELECT customers.name, 
   customers.customer_id, 
   COUNT(orders.order_id) AS Orderscount,
   MIN(col_name) AS firstOrder,
   MAX(col_name) AS lastOrder,
   ROUND(julianday(MAX(col_name)) - julianday(MIN(col_name))) AS range
FROM customers 
JOIN orders ON customers.customer_id = orders.customer_id 
GROUP BY customers.name,
         customers.customer_id                       
HAVING Orderscount >= 2  
ORDER BY Orderscount DESC

这很有效。这个范围是一个小数“日”数。如何将其四舍五入为整数?(我将col_name更改为我的purchase_date字段)@tottekarsson添加
舍入到最接近的整数。@tottekarsson或
CAST(…AS INT)
截断小数部分,因为SQLite没有ceil,所以以舍入结束。@tottekarsson是的,但您可以使用
CAST
。请刷新页面,可能您错过了我的第二条评论。