加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

php – MySQL AVG(COUNT(*) – 订单按星期几查询?

发布时间:2020-12-11 23:34:58 所属栏目:MySql教程 来源:网络整理
导读:这个问题令我困惑我已经搜索了一天的网络工作,我尝试过很多东西. 我希望从我的数据库获得每周每天的平均订单数量.我可以用COUNT来计算总数#就好了.但我无法弄清楚如何在GROUP BY上获得COUNT的AVG.我已经尝试了子查询功能一切没有用也许有人可以给我一个骨头.

这个问题令我困惑……我已经搜索了一天的网络工作,我尝试过很多东西.

我希望从我的数据库获得每周每天的平均订单数量.我可以用COUNT来计算总数#就好了.但我无法弄清楚如何在GROUP BY上获得COUNT的AVG.我已经尝试了子查询……功能……一切……没有用……也许有人可以给我一个骨头.

这是我在下面开始的查询.我知道AVG(COUNT(*))不起作用,但我会留下它,因为它显示了我想做的事情.

SELECT 
    AVG(COUNT(*)) AS avgorders,SUM(total) AS ordertotal,DAYNAME(STR_TO_DATE(order_time,'%m/%d/%Y %H:%i')) AS day 
FROM data 
GROUP BY day 
ORDER BY DAYOFWEEK(STR_TO_DATE(order_time,'%m/%d/%Y %H:%i')) ASC
最佳答案 要获得平均值,您不需要每天的总计,您需要每天多个每日总计.

  Day    |  Count
__________________
 Monday        5
 Tuesday       4
 Monday        6
 Tuesday       3
 ...          ...

然后你可以平均这些数字.星期一I.e(5 6)/ 2.
这样的事情应该有效:

SELECT day_of_week,AVG(order_count) average_order FROM 
(
  SELECT DAYNAME(order_date) day_of_week,DAYOFWEEK(order_date) day_num,TO_DAYS(order_date) date,count(*) order_count
  FROM data 
  GROUP BY date
) temp
GROUP BY day_of_week 
ORDER BY day_num

更新:我本来是错的.将内部SELECT按实际日期分组以获得正确的每日总计.例如,您需要分别在星期一(2/1/10)和星期一(2/8/10)获得多少订单.然后将这些总数按星期几计算.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读