SQL查询计算,每天订单的总号?(SQL query for Calculating Total N

2019-06-26 00:53发布

任何人都可以张贴计算,每天订单的总第一个SQL查询?

下面是他们在我的数据库数据一起列。


order_id    order_placed_date   order_total  
 - 1    12/30/2008 12:06:24 AM  2499.99  
 - 2    2/3/2009 1:57:17 AM 199.99  
 - 3    2/3/2009 1:58:27 AM 449.99  
 - 4    5/3/2009 1:58:48 AM 299.99  
 - 5    6/3/2009 2:00:31 AM 359.94
 - 6    6/3/2009 2:01:47 AM 279.97
 - 7    6/3/2009 2:02:31 AM 1359.94
 - 9    7/1/2009 2:21:18 PM 5099.98
 - 10   7/1/2009 2:21:36 PM 2621.97
 - 11   7/2/2009 2:22:18 PM 2169.95
 - 12   7/3/2009 2:23:29 PM 2249.95
 - 13   7/4/2009 2:24:24 PM 5509.95
 - 14   7/5/2009 12:15:17 AM    449.99
 - 15   7/5/2009 12:18:08 AM    2299.99
 - 16   7/5/2009 12:18:28 AM    3999.99
 - 17   7/5/2009 12:18:45 AM    1939.99
 - 18   7/5/2009 11:58:07 PM    39.99
 - 19   7/6/2009 12:00:42 AM    1899.99
 - 20   7/6/2009 12:01:00 AM    3999.99
 - 21   7/7/2009 12:06:38 AM    199.99
 - 22   7/7/2009 12:08:31 AM    1143.97
 - 23   7/7/2009 12:09:13 AM    449.99
 - 26   7/15/2009 1:30:03 PM    5469
 - 27   7/15/2009 2:14:24 PM    329.97
 - 28   7/15/2009 6:18:47 PM    5469
 - 29   7/15/2009 10:17:36 PM   39.99

对于例如,有2个数量级,2009年Febuary月

 - 2    2/3/2009 1:57:17 AM     199.99  
 - 3    2/3/2009 1:58:27 AM     449.99  

我需要一个SQL查询这将计算和显示每天的总量。 因此,对于2009年2月3日,总将是699.98

我需要在一个图表显示每天的订单总额

如果它会更容易使用PHP来做到这一点,不要提它。


更新:
我想澄清,我需要总量为每天当前月。 我忘了提及,在我最初的问题。

所以我udpated彼得查询来获取在这一个月,每天订单+总金额合计号。

请让我知道是否需要任何更正或有这样做的更好和更短的方式。


SELECT date(order_placed_date), COUNT(order_id) AS num_orders, SUM(order_total) AS daily_total
FROM orders
WHERE order_placed_date>=date_sub(current_date, INTERVAL 31 DAY)
GROUP BY date(order_placed_date)

Answer 1:

MySQL的日期()函数会返回一个DATEIME或TIMESTAMP值没有任何小时/分钟/秒信息-这意味着你降低精度值的一天。

因此,所有你需要做的是组由然后添加聚合函数向右列。

SELECT date(order_placed_date)
     , COUNT(id) AS num_orders
     , SUM(order_total) AS daily_total
  FROM [Table]
 GROUP BY date(order_placed_date)


Answer 2:

SELECT date(order_placed_date)
     , COUNT(id) AS num_orders
     , SUM(order_total) AS daily_total
  FROM orders
 GROUP BY 1

只是复制彼得的答案,但它改变所以它会工作。 加上shortcuted组。



Answer 3:

一个由一群在这里你的朋友。 它可以聚合在分组的行。 示例查询是:

SELECT order_placed_date, SUM(order_total)
  FROM orders
 GROUP BY order_placed_date

当然,在你的例子你可能想使用只提取日/月/年部分DATE()函数,和组通过。



Answer 4:

select YEAR(datename(year,ORDER_DATE)) as YEARS,
       count(ORDER_nO) as [NO(ORDER)]
       from ProductOrder
       group by YEAR(datename(year,ORDER_DATE))


Answer 5:

我不知道它是MySQL,但在MSSQL会是这样,

select 
datepart(yyyy, order_placed_date), 
datepart(mm, order_placed_date), 
datepart(dd, order_placed_date),
sum(order_total)
from orders
group by datepart(yyyy, order_placed_date), datepart(mm, order_placed_date), datepart  (dd, order_placed_date)


文章来源: SQL query for Calculating Total No. of Orders per Day?