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

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

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

      數據開發工程師面試題-窗口函數

      表名: 交易明細表

      字段: 產品、交易時間(精確到時分秒)、交易金額。

      進行以下四個統計需求的實現:

      1)、統計每個產品每天的總交易額

      2)、統計每個產品每天的當月總交易額

      3)、統計每天當日交易額排名前三的產品

      4)、統計每個產品每天的最近7天總交易額

       

      例如建表語句如下:

      CREATE TABLE transaction_detail (
      product string COMMENT '產品',
      transaction_time datetime COMMENT '交易時間',
      amount decimal(20,2) COMMENT '交易金額'
      ) ;

      以下是使用HiveSQL實現四個統計需求的完整解決方案,結合窗口函數和聚合函數實現:

      1. 統計每個產品每天的總交易額

      SELECT 
          product,
          to_date(transaction_time) AS trans_date,
          SUM(amount) AS daily_total
      FROM transaction_detail
      GROUP BY product, to_date(transaction_time);

      說明??:

      • 按產品和交易日期分組,使用SUM()聚合函數計算每日交易總額
      • to_date()函數提取交易時間的日期部分

       

      2. 統計每個產品每天的當月總交易額

      WITH daily_summary AS (
          SELECT 
              product,
              to_date(transaction_time) AS trans_date,
              SUM(amount) AS daily_total
          FROM transaction_detail
          GROUP BY product, to_date(transaction_time)
      )
      SELECT 
          product,
          trans_date,
          daily_total,
          SUM(daily_total) OVER (
              PARTITION BY product, month(trans_date) 
              ORDER BY trans_date 
              ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
          ) AS monthly_total
      FROM daily_summary;

      ??說明??:

      • 先創建CTE計算每日交易額
      • 使用窗口函數SUM() OVER()按產品和月份分區,計算整個月的累計交易額
      • ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING確保計算整個分區。
      • 如果需要計算截至當天的累計交易額,需要將UNBOUNDED FOLLOWING替換為CURRENT ROW。

       

      3. 統計每天交易額排名前三的產品

      WITH daily_product_summary AS (
          SELECT 
              to_date(transaction_time) AS trans_date,
              product,
              SUM(amount) AS daily_total
          FROM transaction_detail
          GROUP BY to_date(transaction_time), product
      ),
      ranked_products AS (
          SELECT 
              trans_date,
              product,
              daily_total,
              RANK() OVER (
                  PARTITION BY trans_date 
                  ORDER BY daily_total DESC
              ) AS rank
          FROM daily_product_summary
      )
      SELECT 
          trans_date,
          product,
          daily_total
      FROM ranked_products
      WHERE rank <= 3;

      ??說明??:

      • 先按日期和產品分組計算每日交易額
      • 使用RANK() OVER()窗口函數按日期分區、交易額降序排名
      • 篩選排名≤3的記錄

       

      4. 統計每個產品每天的最近7天總交易額

      WITH daily_summary AS (
          SELECT 
              product,
              to_date(transaction_time) AS trans_date,
              SUM(amount) AS daily_total,
              unix_timestamp(to_date(transaction_time)) AS date_ts  -- 轉換為時間戳
          FROM transaction_detail
          GROUP BY product, to_date(transaction_time)
      )
      SELECT 
          product,
          trans_date,
          daily_total,
          SUM(daily_total) OVER (
              PARTITION BY product 
              ORDER BY date_ts 
              RANGE BETWEEN 6 * 86400 PRECEDING AND CURRENT ROW  -- 6天*86400秒
          ) AS last7d_total
      FROM daily_summary;

      ??說明??:

      • 先計算每日交易額并轉換為Unix時間戳
      • 使用RANGE BETWEEN指定時間范圍窗口(7天=604,800秒)
      • 按產品分區,計算滾動7天交易總額
         

      關鍵函數說明:

        1. ??窗口函數結構??:
          函數 OVER (PARTITION BY ... ORDER BY ... [窗口范圍])
           
        2. ??時間范圍窗口??:
          • RANGE BETWEEN:按實際時間值計算范圍(需數值類型)
          • ROWS BETWEEN:按物理行數計算范圍
             
        3. ??排名函數區別??:
          • RANK():并列排名會跳過后續名次(1,1,3)
          • DENSE_RANK():并列不跳名次(1,1,2)
          • ROW_NUMBER():連續編號(1,2,3)
      posted @ 2025-05-29 10:17  業余磚家  閱讀(128)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 九九色这里只有精品国产| 亚洲中文字幕无码爆乳APP| 亚洲精品tv久久久久久久久久| 极品无码人妻巨屁股系列| 国产一区二区三区不卡视频| 亚洲人成色777777老人头| 熟女激情乱亚洲国产一区| 亚洲国产精品久久久天堂麻豆宅男 | 亚洲香蕉网久久综合影视| 亚洲欧美精品一中文字幕| 不卡在线一区二区三区视频| 亚洲欧美日韩综合久久| а√在线中文网新版地址在线| 亚洲综合高清一区二区三区| 亚洲精品动漫免费二区| 亚洲人成小说网站色在线 | 人妻少妇看a偷人无码| 中文字幕一区二区三区麻豆| 色偷偷女人的天堂亚洲网| 国产精品视频白浆免费视频| 德格县| 亚洲深夜精品在线观看| 国产超碰无码最新上传| 男人+高清无码+一区二区| 日韩av毛片福利国产福利| 熟妇人妻一区二区三区四区| 成人亚洲一区二区三区在线| 天堂mv在线mv免费mv香蕉| 欧美综合婷婷欧美综合五月 | 国产学生裸体无遮挡免费| 久久久久成人片免费观看蜜芽 | 国产亚洲综合另类色专区| 国产jlzzjlzz视频免费看| 97人妻精品一区二区三区| 缙云县| 国产另类ts人妖一区二区| 国产精品国产三级国av| 久久精品国产久精国产果冻传媒| 国产人妻大战黑人第1集| 永济市| 亚洲成人av在线高清|