【问题标题】:Database query using Grouping Sets使用分组集的数据库查询
【发布时间】:2022-11-02 13:54:24
【问题描述】:

我正在使用 Oracle 和 SQL Developer。我已经下载了模式销售历史,需要用它做一些查询。我正在使用表 PRODUCTS。作为用户,我需要每个 PROD_CATEGORY、PROD_SUBCATEGORY、SUPPLIER_ID 的 PROD_LIST_PRICE 总和以及每个 PROD_CATEGORY 的总和。我需要通过 GROUPING SETS 提供解决方案。我做了这样的事情,但似乎这是完全错误的:

WITH ds as(
  SELECT prod_category, prod_subcategory, supplier_id, sum(prod_list_price) sum_all,
GROUPING_ID (prod_category, prod_subcategory, supplier_id) group_id
FROM products
GROUP BY 
GROUPING SETS (
                (prod_category, prod_subcategory, supplier_id), ()
                )
)
SELECT decode ( GROUPING (prod_category), 1, 'Total', 0, prod_category) cat,
SUM(prod_list_price) sum_prod
FROM ds
GROUP BY 
GROUPING SETS( (prod_category), ())
ORDER BY prod_category; 

也许我没有正确理解这些条件。如何修复此查询或修改以完全满足我的需要?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    它不以当前形式运行

    SQL> WITH ds as(
      2    SELECT prod_category, prod_subcategory, supplier_id, sum(prod_list_price) sum_all,
      3  GROUPING_ID (prod_category, prod_subcategory, supplier_id) group_id
      4  FROM sh.products
      5  GROUP BY
      6  GROUPING SETS (
      7                  (prod_category, prod_subcategory, supplier_id), ()
      8                  )
      9  )
     10  SELECT decode ( GROUPING (prod_category), 1, 'Total', 0, prod_category) cat,
     11  SUM(prod_list_price) sum_prod
     12  FROM ds
     13  GROUP BY
     14  GROUPING SETS( (prod_category), ())
     15  ORDER BY prod_category;
    SUM(prod_list_price) sum_prod
        *
    ERROR at line 11:
    ORA-00904: "PROD_LIST_PRICE": invalid identifier
    

    但是分组集是为了让你准确地选择你想要做的小计级别,所以很少需要比单个规范更多的东西。

    如果我正确阅读了您的要求

    我需要每个 PROD_CATEGORY、PROD_SUBCATEGORY、SUPPLIER_ID 的 PROD_LIST_PRICE 总和以及每个 PROD_CATEGORY 的总和

    以下应该这样做

    SQL> SELECT
      2    prod_category,
      3    prod_subcategory,
      4    supplier_id,
      5    sum(prod_list_price) tot,
      6    GROUPING_ID (prod_category, prod_subcategory, supplier_id) group_id
      7  FROM sh.products
      8  GROUP BY
      9  GROUPING SETS (
     10                  (prod_category, prod_subcategory, supplier_id),
     11                  (prod_category)
     12                  );
    
    PROD_CATEGORY                                      PROD_SUBCATEGORY                                   SUPPLIER_ID        TOT   GROUP_ID
    -------------------------------------------------- -------------------------------------------------- ----------- ---------- ----------
    Photo                                              Cameras                                                      1     899.99          0
    Photo                                              Camcorders                                                   1    1099.99          0
    Photo                                              Camera Media                                                 1     155.97          0
    Photo                                              Camera Batteries                                             1     145.95          0
    Photo                                                                                                                 2301.9          3
    Hardware                                           Desktop PCs                                                  1     999.99          0
    Hardware                                           Portable PCs                                                 1    1299.99          0
    Hardware                                                                                                             2299.98          3
    Electronics                                        Home Audio                                                   1    1099.98          0
    Electronics                                        Y Box Games                                                  1     152.92          0
    Electronics                                        Game Consoles                                                1     299.99          0
    Electronics                                        Y Box Accessories                                            1      28.98          0
    Electronics                                                                                                          1581.87          3
    Software/Other                                     Accessories                                                  1     108.95          0
    Software/Other                                     Documentation                                                1     269.94          0
    Software/Other                                     Recordable CDs                                               1      86.93          0
    Software/Other                                     Operating Systems                                            1     199.99          0
    Software/Other                                     Bulk Pack Diskettes                                          1      44.98          0
    Software/Other                                     Recordable DVD Discs                                         1     105.95          0
    Software/Other                                                                                                        816.74          3
    Peripherals and Accessories                        CD-ROM                                                       1     254.94          0
    Peripherals and Accessories                        Memory                                                       1     262.98          0
    Peripherals and Accessories                        Monitors                                                     1    1899.98          0
    Peripherals and Accessories                        Modems/Fax                                                   1      90.98          0
    Peripherals and Accessories                        Accessories                                                  1     189.95          0
    Peripherals and Accessories                        Printer Supplies                                             1     347.96          0
    Peripherals and Accessories                                                                                          3046.79          3
    

    【讨论】:

      猜你喜欢
      • 2018-10-24
      • 2018-08-04
      • 1970-01-01
      • 2019-05-19
      • 2011-07-01
      • 2017-10-13
      • 1970-01-01
      • 2020-03-28
      • 2012-07-23
      相关资源
      最近更新 更多