我想在SQLite中生成一个查询,我可以确定每年在每个工作日的平均销售量。SQLite - 确定每周的平均销售量
举个例子,我想说想说
“星期一的平均销售额为$ 400.50,2017年”
我有一个销售表 - 每一行代表你做销售。您可以在同一天有多个销售。在这里感兴趣的列:
Id, SalesTotal, DayCreated, MonthCreated, YearCreated, CreationDate, PeriodOfTheDay
日/月/年是代表一周中的日/月/年的整数。 DateCreated是一个unix时间戳,代表它创建的日期/时间(显然等于日/月/年)。
PeriodOfTheDay是0或1(白天或晚上)。您可以在特定的一天中有多个记录(通常最多可以有2个记录,但有些人喜欢单独添加所有销售记录,因此一天可能有5个或更多记录)。
当我被困
因为你可以在同一天两个记录(即每天的销售,一夜销售,或每多),我不能只通过的天团周(即星期六组所有记录)。
这是因为您所做的销售数量与您工作的天数不相等(即我可以工作10个星期六,但有30个销售,所以按'星期六'分组会产生30个销售,因为存在30条记录对于星期六(有些恰好在同一天发生)
此外,如果我通过daycreated,monthcreated,yearcrease它工作的意义上它产生x行(其中x是你工作的天数),但现在意味着我需要将此结果集返回到后端并进行计数,我宁愿在查询中这样做,这样我就可以将销售额除以您的工作天数
是否有人会AB乐协助?
谢谢!
UPDATE
我想我得到了它 - 我很想有人告诉我,如果我是正确的:
SELECT COUNT(DISTINCT CAST((julianday((datetime(CreationDate/1000, 'unixepoch', 'localtime'))))/7 AS INT))
FROM Sales
WHERE strftime('%w', datetime(CreationDate/1000, 'unixepoch'), 'localtime') = '6'
AND YearCreated = 2017
这将产生数星期六,然后我会只需将此作为内部查询,将销售总额除以此天数即可。
谢谢@OzLa - 我犯了一个错误,我把MySQL我的意思是SqlLIte,但无论如何,我做了你的建议,将它们分组。它产生行(所以不只是一个值),但这些行的总数是我想要的值。问题是,这意味着现在我必须将结果集传回给PHP来计算记录,但我真的很想在SQL中获得总计数。任何想法现在怎么做?谢谢! – NullHypothesis
您能提供一个虚拟数据和预期输出来构建查询吗?如果可行,我们可以测试您的查询 – OzLa