我正在尝试查询大多数订单发生的一周中的哪一天。我写了一个返回结果的查询。但是,我相信,结果是,一周的日期可能基于大多数订单,但是每个订单的日期,所以有几十个。我想知道如何只返回一天。
表格是:
Orders
OrderID
OrderDate
SELECT MAX(DAYNAME(OrderDate)) as WeekDay
FROM Orders O
GROUP BY OrderDate
OrDER BY WeekDay DESC;
答案 0 :(得分:2)
您要编写的查询是:
SELECT TOP (1) DAYNAME(OrderDate) as WeekDay, COUNT(*)
FROM Orders O
GROUP BY DAYNAME(OrderDate)
OrDER BY COUNT(*) DESC;
虽然此查询似乎可以回答您的问题,但您必须非常小心。毕竟,如果Orders
只有一天的数据,那么一周的那一天将占主导地位。我的建议是从指定的周数中获取数据 - 最好是没有假期 - 来获取这些信息。
您的问题没有指定数据库(虽然我猜)。具体的日期/时间逻辑取决于数据库。