代码之家  ›  专栏  ›  技术社区  ›  krash

查询以获取股票分类的自定义数据视图

  •  0
  • krash  · 技术社区  · 6 年前

    需要帮助在查询的想法,以达到预期的结果如下所示。我尝试了一些基本的方法,但无法前进。任何帮助将不胜感激。 因此,我们的想法是将class1放在顶部,并对第3列中的所有行迭代所有class2。

    表格日期:

    enter image description here

    预期数据输出:

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  0
  •   Radagast81    6 年前

    您可能需要以下内容,但我不确定它是否正是您要查找的内容,因为我不知道字符串'S,3,TESTxxx,US'中的S和US来自何处:

    WITH dat AS (SELECT 'INFOTECH' Class1, 'SECOSEEQ' Class2, 'TEST123' Asset FROM dual
                  UNION ALL
                 SELECT 'INFOTECH' Class1, 'SECOSEEQ' Class2, 'TEST124' Asset FROM dual
                  UNION ALL
                 SELECT 'INFOTECH' Class1, 'SECOSEEQ' Class2, 'TEST125' Asset FROM dual
                  UNION ALL
                 SELECT 'INFOTECH' Class1, 'SOSE' Class2, 'TEST126' Asset FROM dual
                  UNION ALL
                 SELECT 'INFOTECH' Class1, 'SOSE' Class2, 'TEST127' Asset FROM dual
                  UNION ALL
                 SELECT 'INFOTECH' Class1, 'SOSE' Class2, 'TEST128' Asset FROM dual
                  UNION ALL
                 SELECT 'INFOTECH' Class1, 'TEHAEQ' Class2, 'TEST129' Asset FROM dual
                  UNION ALL
                 SELECT 'INFOTECH' Class1, 'TEHAEQ' Class2, 'TEST130' Asset FROM dual
                  UNION ALL
                 SELECT 'MATERIAL' Class1, 'ALUMINUM' Class2, 'TEST131' Asset FROM dual
                  UNION ALL
                 SELECT 'MATERIAL' Class1, 'ALUMINUM' Class2, 'TEST132' Asset FROM dual
                  UNION ALL
                 SELECT 'MATERIAL' Class1, 'CHEMICAL' Class2, 'TEST133' Asset FROM dual
                  UNION ALL
                 SELECT 'MATERIAL' Class1, 'CHEMICAL' Class2, 'TEST134' Asset FROM dual)
    SELECT CASE WHEN class2 IS NULL 
                THEN '1,'||class1
                WHEN asset IS NULL 
                THEN '2,'||class2
                ELSE 'S,3,'||asset||',US'
           END  
      FROM dat
     GROUP BY class1, ROLLUP(class2,asset)
     ORDER BY class1, class2 nulls first, asset nulls first