<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      AI教我一條SQL實現明細轉樹形結構

      AI教我一條SQL實現明細轉樹形結構

      1. 原始數據

      序號 COUNTRY PROVINCE CITY GAME
      1 中國 廣東 深圳 地心俠士
      2 中國 廣東 廣州 地心俠士
      3 中國 江蘇 南京 地心俠士
      4 美國 加州 洛杉磯 地心俠士

      2. 目標數據

      序號 節點名稱 節點ID 父級節點ID 國家 城市 微信小游戲
      1 美國 美國 0 美國
      2 加州 美國加州 美國 美國 加州
      3 洛杉磯 美國加州洛杉磯 美國加州 美國 加州 洛杉磯 地心俠士
      4 中國 中國 0 中國
      5 廣東 中國廣東 中國 中國 廣東
      6 廣州 中國廣東廣州 中國廣東 中國 廣東 廣州 地心俠士
      7 深圳 中國廣東深圳 中國廣東 中國 廣東 深圳 地心俠士
      8 江蘇 中國江蘇 中國 中國 江蘇
      9 南京 中國江蘇南京 中國江蘇 中國 江蘇 南京 地心俠士

      3. 實現思路

      從一個明細數據,提取多余的父級信息,可以使用不同維度的分組進行提取.可以逐層獲取,也可以使用GROUPING SETS
      減少分組代碼量.比如以上提供的目標數據中可以如下匯總實現:

      • 匯總國家層級,按照country分組匯總,得到中國,美國,兩條數據
      • 匯總省份層級,按照country,province,得到中國廣東,中國江蘇,美國加州三條數據
      • 匯總明細數據,直接按照所有列進行分組,得到明細數據

      以上步驟,可以解決數據問題,但是數據之間的層級關系體現不出來,需要添加三列,分別表示節點名稱,節點ID,父級節點ID
      可以說使用分組函數GROUPING_ID實現,分組列為二進制,包含分組為0不包含為1,國家,省,明細三個分組值依次為

      • 匯總國家層級 GROUPING_ID(country, province, city),二進制 011 十進制 3,節點名稱 country 節點ID country 父級節點ID '0'
      • 匯總省份層級 GROUPING_ID(country, province, city),二進制 001 十進制 1,節點名稱 province 節點ID country||province 父級節點ID country
      • 匯總明細層級 GROUPING_ID(country, province, city),二進制 000 十進制 0,節點名稱 city 節點ID country||province||city 父級節點ID country||province

      分組函數詳細參考可以查看 sql分組 group by rollup,cube,grouping sets,group_id,groupingId

      WITH region_data AS (
        SELECT '中國' as country, '廣東' as province, '深圳' as city ,'地心俠士' as game FROM dual UNION ALL 
        SELECT '中國', '廣東', '廣州' ,'地心俠士' FROM dual UNION ALL
        SELECT '中國', '江蘇', '南京','地心俠士' FROM dual UNION ALL
        SELECT '美國', '加州', '洛杉磯','地心俠士' FROM dual
      )
      SELECT 
          CASE 
              WHEN GROUPING_ID(country, province, city) = 0 THEN city
              WHEN GROUPING_ID(country, province, city) = 1 THEN province
              WHEN GROUPING_ID(country, province, city) = 3 THEN country
          END AS 節點名稱,
         CASE 
              WHEN GROUPING_ID(country, province, city) = 0 THEN country||province||city
              WHEN GROUPING_ID(country, province, city) = 1 THEN country||province
              WHEN GROUPING_ID(country, province, city) = 3 THEN country
          END AS 節點ID,
           CASE 
              WHEN GROUPING_ID(country, province, city) = 0 THEN country||province
              WHEN GROUPING_ID(country, province, city) = 1 THEN country
              WHEN GROUPING_ID(country, province, city) = 3 THEN '0'
          END AS 父級節點ID,
          country AS 國家,
          province AS 省,
          city AS 城市,
          game as 微信小游戲
      FROM region_data
      GROUP BY GROUPING SETS (
          (country, province, city,game),
          (country, province),     
          (country)               
      )
      ORDER BY country, province nulls first, city nulls first;
      
      

      前端構造樹形結構數據,傳遞給前端有時有特殊字符,方便處理,可以統一轉換成16進制串,針對節點ID,父級節點ID,

        function NODEID_TO_RAWID(str in varchar2) return varchar2 is
          new_str varchar2(1000);
          -- 微信公眾: 小滿小慢 20251113
        begin
          new_str:=UTL_RAW.CAST_TO_RAW(str);
          return new_str;
        end;
      

      4. 總結

      實現過程使用AI輔助生成測試代碼,通過一次交互提示詞,返回目標代碼.關注微信公眾號[小滿小慢],回復關鍵詞AIGROUP可獲取具體提示內容.

      原文地址: https://mp.weixin.qq.com/s/9_A6cgohb8sX1N0RME0usQ

      posted @ 2025-11-03 14:10  _herbert  閱讀(5)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 成人无码视频| 久久国产精品二国产人妻| 亚洲综合一区国产精品| 天天躁夜夜躁狠狠综合| 亚洲成av人片无码不卡播放器| 国产成人无码免费网站| 台南县| 四虎永久免费精品视频| 国产不卡av一区二区| 大伊香蕉在线精品视频75| 亚洲人成网站在线播放2019| 丰满人妻一区二区三区高清精品| 国产一区二区不卡自拍| av亚洲在线一区二区| 欧美人与动zozo在线播放| 国产欧亚州美日韩综合区| 日韩国产成人精品视频| 洛宁县| 欧美老少配性行为| 亚洲 欧洲 自拍 偷拍 首页| 国产乱码精品一区二区三| 九九热在线观看精品视频| 国精产品一区一区三区有限公司杨 | 亚洲精品一二三四区| 狠狠色狠狠色综合久久蜜芽| 巍山| 国99久9在线 | 免费| 乱人伦中文字幕成人网站在线| 多伦县| av天堂亚洲天堂亚洲天堂| 日韩av中文字幕有码| 亚洲国产另类久久久精品网站| 蜜臀精品视频一区二区三区| 亚洲人成电影网站色mp4| 国产精品涩涩涩视频网站| 久久亚洲女同第一区综合| 亚洲天堂激情av在线| 亚洲乱亚洲乱妇50p| 一本久道久久综合狠狠躁av| 国产精品自产拍在线播放| 激情综合网激情综合|