欢迎光临散文网 会员登陆 & 注册

SQL高级用法之前90%销售额的商品

2023-07-28 19:24 作者:DonT_T同学  | 我要投稿

要求占据前90%销售总额的商品类型,可以按照以下步骤进行计算:


1. 计算每个商品类型的销售总额。

  首先,对tb_sale_amount表按照商品类型(good_category)进行分组,然后计算每个商品类型的销售总额。


  ```sql

  SELECT good_category, SUM(amount) AS total_amount

  FROM tb_sale_amount

  GROUP BY good_category;

  ```


2. 计算销售总额的百分比并排序。

  在上一步的基础上,计算每个商品类型销售总额在销售总额中的占比,并按照占比降序排序。


  ```sql

  SELECT good_category, total_amount,

    total_amount / (SELECT SUM(amount) FROM tb_sale_amount) AS percentage

  FROM (

    SELECT good_category, SUM(amount) AS total_amount

    FROM tb_sale_amount

    GROUP BY good_category

  ) AS subquery

  ORDER BY percentage DESC;

  ```


3. 累加计算占比,找到占据前90%销售总额的商品类型。

  在上一步的基础上,使用累加计算的方式,找到占据前90%销售总额的商品类型。


  ```sql

  SELECT good_category, total_amount, percentage

  FROM (

    SELECT good_category, total_amount, percentage,

      SUM(percentage) OVER (ORDER BY percentage DESC) AS cumulative_percentage

    FROM (

      SELECT good_category, SUM(amount) AS total_amount,

        total_amount / (SELECT SUM(amount) FROM tb_sale_amount) AS percentage

      FROM tb_sale_amount

      GROUP BY good_category

    ) AS subquery

  ) AS subquery2

  WHERE cumulative_percentage <= 0.9;

  ```


SQL高级用法之前90%销售额的商品的评论 (共 条)

分享到微博请遵守国家法律