【问题标题】:Average pizza orders for specific pizza place per day - SQL每天特定披萨店的平均披萨订单 - SQL
【发布时间】:2017-12-21 15:54:25
【问题描述】:

如何使用 SQLite 确定特定披萨店每天的平均订单量?

表格如下:

CREATE TABLE pizzaorders (
     id STRING PRIMARY KEY,
     pizza_place STRING,
     created_utc STRING,
);

我设法对披萨店“Dominos”每天的披萨订单数量进行分组(顺便说一句,created_utc 属性以 UTC 纪元格式存储):

SELECT 
   strftime('%d-%m-%Y', created_utc, 'unixepoch') AS dt, 
   COUNT(*) AS orders 
FROM pizzaorders WHERE pizza_place = 'dominos' 
   GROUP BY dt;

26-10-2017|543
24-10-2017|581
18-10-2017|593
30-10-2017|608
31-10-2017|621
25-10-2017|647

但是如何使用AVG() 来获取特定披萨店(例如本例中的多米诺骨牌)每天的平均订单?

【问题讨论】:

  • 你能分享一下你期待的结果吗?
  • @Mureinik 好吧,在上面的示例中,我期望所有订单的平均值,即 543 + 581 + 593 + 608 + 621 + 647 / 6 = ~598 - 总结一下:多米诺骨牌得到每天约 598 个订单

标签: sql sqlite select average


【解决方案1】:

您可以将总计数除以不同的天数:

SELECT COUNT(*) /
       COUNT(DISTINCT STRFTIME('%d-%m-%Y', created_utc, 'unixepoch'))
FROM   pizzaorders
WHERE  pizza_place = 'dominos' 

【讨论】:

  • 通过删除封装它的 'DATE()' 起作用了!所以 SELECT COUNT(*) / COUNT(DISTINCT STRFTIME('%d-%m-%Y', created_utc, 'unixepoch')) FROM Pizzaorders WHERE Pizza_place = 'dominos'
  • @Jesper 我开始回复mysql 并注意到它是sqlite 中间输入。 date 是我应该删除的剩余部分,并且一定错过了,我深表歉意。已编辑并修复,感谢您指出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多