关于SQL多类别汇总取最大值的实现
2017-11-07 本文已影响0人
大混沌IAM
销售明细按站名、各大类中的销售收入最高的商品进行汇总。想了半天 可以用如下SQL实现:
select a.便利店名称,a.商品品类描述,round(a.销售收入max,2) as 收入,b.商品名称 from
(
select 便利店名称, 商品品类描述, max(销售收入base) as 销售收入max from
(
SELECT 便利店名称, 商品品类描述, 商品名称, sum(销售收入) AS 销售收入base FROM usmile GROUP BY 便利店名称, 商品品类描述, 商品名称 HAVING sum(销售收入)>0
) base
GROUP BY 便利店名称, 商品品类描述
) a,
(
select 便利店名称, 商品名称, max(销售收入base) as 销售收入max from
(
SELECT 便利店名称, 商品品类描述, 商品名称, sum(销售收入) AS 销售收入base FROM usmile GROUP BY 便利店名称, 商品品类描述, 商品名称 HAVING sum(销售收入)>0
) base
GROUP BY 便利店名称, 商品名称
) b
where a.便利店名称=b.便利店名称 and a.销售收入max=b.销售收入max