输入:我有一个表格,其中列出了帐户及其每天的支出。为简单起见,我们将说该表具有以下字段:account,account_id,日期,销售。
输出:最终目标是获取前25个帐户的报告,并列出前8周的销售情况。该报告将包含account,account_id,然后是前8周中的每8个附加列,每列的销售量总计。
问题1:我在获取前25个帐户时遇到问题。我编写了一个子查询来汇总每个帐户的上个月销售额,并通过使用带in运算符的where子句来获得前25名,但是子查询不支持inp运算符。
问题2:我不确定如何将前8周分成几列。
select
yearweek(date,1) as year_week
,date_add(makedate(year(date),1), interval week(date,1) week) as first_day_of_week
,account_id
,account
,sum(sales) as total_sales
from daily_sales
where date >= date_sub(curdate(), interval 8 week)
and account_id in ( select
account_id
from daily_sales
where year(date)=2018 and month(date)=11
group by 1
limit 25)
group by 1,2,3,4;