Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-最常见的星期几查询_Sql_Date_Datepart - Fatal编程技术网

SQL-最常见的星期几查询

SQL-最常见的星期几查询,sql,date,datepart,Sql,Date,Datepart,我试图查询一周中哪一天订单最多。我编写了一个返回结果的查询。但是,结果是,我相信,一周中的哪一天可能基于大多数订单,但是每一个订单的哪一天,所以有几十个。我想知道如何只返回一天 表格如下: Orders OrderID OrderDate SELECT MAX(DAYNAME(OrderDate)) as WeekDay FROM Orders O GROUP BY OrderDate OrDER BY WeekDay DESC; 您尝试编写的查询是: SELECT TOP (1)

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

表格如下:

Orders
 OrderID
 OrderDate

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

您尝试编写的查询是:

SELECT TOP (1) DAYNAME(OrderDate) as WeekDay, COUNT(*)
FROM Orders O
GROUP BY DAYNAME(OrderDate)
OrDER BY COUNT(*) DESC;
虽然这个查询似乎回答了您的问题,但您必须非常小心。毕竟,如果订单只有一天的数据,那么这一天将占主导地位。我的建议是从指定的周数(最好没有假期)中获取数据,以获得此信息


您的问题没有指定数据库,尽管我可以猜到。具体的日期/时间逻辑取决于数据库。

您试图编写的查询是:

SELECT TOP (1) DAYNAME(OrderDate) as WeekDay, COUNT(*)
FROM Orders O
GROUP BY DAYNAME(OrderDate)
OrDER BY COUNT(*) DESC;
虽然这个查询似乎回答了您的问题,但您必须非常小心。毕竟,如果订单只有一天的数据,那么这一天将占主导地位。我的建议是从指定的周数(最好没有假期)中获取数据,以获得此信息


您的问题没有指定数据库,尽管我可以猜到。具体的日期/时间逻辑取决于数据库。

我很感谢您的评论,但执行起来有困难。它说“WITH”在那一点上是无效的。我没有用过WITH,也不熟悉它的语法。您能澄清一下它在做什么吗?我无法让您的评论发挥作用,但我尝试了另一种方法,使用您的想法:选择MAXDAYNAMEOrderDate作为工作日,从Orders O GROUP BY DAYNAMEOrderDate OrderDate BY WeekDay DESC中计数*;选择MAXDAYNAMEOrderDate作为工作日,按DAYNAMEOrderDate从Orders组中按计数计数*按计数*描述限制1;这确实返回了一周中的天数和计数,第二个查询返回了订单最多的一天,尽管周二和周四的数量相同。很抱歉,在此处设置代码格式时遇到问题,使用领带不是很重要。如果有联系的话,它只会返回最高的一周天数。我很感谢你的评论,但是我在执行这一点上遇到了困难。它说“WITH”在那一点上是无效的。我没有用过WITH,也不熟悉它的语法。您能澄清一下它在做什么吗?我无法让您的评论发挥作用,但我尝试了另一种方法,使用您的想法:选择MAXDAYNAMEOrderDate作为工作日,从Orders O GROUP BY DAYNAMEOrderDate OrderDate BY WeekDay DESC中计数*;选择MAXDAYNAMEOrderDate作为工作日,按DAYNAMEOrderDate从Orders组中按计数计数*按计数*描述限制1;这确实返回了一周中的天数和计数,第二个查询返回了订单最多的一天,尽管周二和周四的数量相同。很抱歉,在此处设置代码格式时遇到问题,使用领带不是很重要。如果有关系,它只返回最高的一周天数。您使用的是什么数据库系统?答案取决于此。你使用的是什么数据库系统?答案非常依赖于这一点。