计数基于 store_A 和所有商店



我想数:

  • 所有count_productsstore_A
  • 包括所有store_id的总count_products甚至store_A为total_count_products

Main_table

date         store_id  count_prroducts
2019-01-01   A         13
2019-01-01   B         34
2019-01-01   C         63
2019-01-01   D         10

Output_table

date          store_A_count_products    total_count_products
2019-01-0     13                        120 

首先选择日期列,不做任何修改。

对于store_A_count_products,基本上你需要做的是在store_id为 A 时将所有count_products相加。您可以使用案例语句执行此操作:

case when store_id = 'A' then count_products else 0 end

这基本上是 IF/ELSE 情况,对于store_id列中没有 A 的任何行,将返回 0。

如果将其包装在 SUM(( 中,则将所有行相加。

对于total_count_products,您只需要在count_products周围包装一个 SUM((。这将对所有行相加,而不考虑任何其他列的状态。

最后,您需要按日期列分组。分组依据是一种将聚合数据拆分到未聚合列的方法。

这样做的原因是因为它为每个日期提供了一行,商店 A 的产品总和和所有产品的总和。

Select 
date,
Sum(case when store_id = 'A' then count_products else 0 end) as store_A_count_products,
SUM(count_products) as total_count_products
From main_table
Group by date;

相关内容

  • 没有找到相关文章

最新更新