SQL - 最常见的星期查询日

时间:2017-04-14 17:17:16

标签: sql date datepart

我正在尝试查询大多数订单发生的一周中的哪一天。我写了一个返回结果的查询。但是,我相信,结果是,一周的日期可能基于大多数订单,但是每个订单的日期,所以有几十个。我想知道如何只返回一天。

表格是:

Orders
 OrderID
 OrderDate

SELECT MAX(DAYNAME(OrderDate)) as WeekDay  
FROM Orders O
GROUP BY OrderDate
OrDER BY WeekDay DESC;

1 个答案:

答案 0 :(得分:2)

您要编写的查询是:

SELECT TOP (1) DAYNAME(OrderDate) as WeekDay, COUNT(*)
FROM Orders O
GROUP BY DAYNAME(OrderDate)
OrDER BY COUNT(*) DESC;

虽然此查询似乎可以回答您的问题,但您必须非常小心。毕竟,如果Orders只有一天的数据,那么一周的那一天将占主导地位。我的建议是从指定的周数中获取数据 - 最好是没有假期 - 来获取这些信息。

您的问题没有指定数据库(虽然我猜)。具体的日期/时间逻辑取决于数据库。