各个产品最近三个月的费用情况
关键词
嵌套子查询,通用聚合分析,成本分析,运营分析
相关函数
round,case when,date_format,date_trunc,sum
使用date_trunc函数按照天对齐日期,然后通过时间、产品名称聚合计算每天的总费用,按天进行排序,通过窗口函数在时间的基础上再按照每天的费用降序排列,最后取价格前六的产品展示名称、价格,其余的归入其他,并对时间、费用格式化展示。 使用流图展示,x轴时间,y轴费用,聚合列为产品名称。
SQL
source :bill |
select
day,
round(sum(total), 3) as total,
case
when rnk <= 5 then ProductDetail
else '其他'
end as ProductDetail
from(
select
day,
total,
ProductDetail,
rank() over(
partition by day
order by
total desc
) as rnk
from(
select
date_format(day, '%Y-%m-%d') as day,
total,
ProductDetail
from(
select
date_trunc('day', __time__) as day,
sum(PretaxAmount) as total,
ProductDetail
from
log
group by
day,
ProductDetail
order by
day
)
)
)
group by
day,
ProductDetail
order by
day
limit
10000