中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中類似oracle的over() row_number()的功能實現

發布時間:2020-08-10 13:31:04 來源:ITPUB博客 閱讀:338 作者:water_chou 欄目:MySQL數據庫
從網上找了很多資料,參考了如下鏈接,完成了一個需求:下一行的開始時間,作為上一行開始時間的結束時間。
https://www.cnblogs.com/yhzh/p/6222580.html

以下是自己做的,可以忽略
-- 說明如下:
-- 先按照設備號,用戶id,book_id,閱讀時間 排序
-- 然后按照設備號分組,對組內的數據按時間 依次編號


-- 首先last_device_num 為空,
-- 第一行判斷 device_num = null,所以賦值1,并把第一行的device_num 傳遞給last_device_num;
-- 第二行時,判斷device_num是否等于上一行的device_num(即last_device_num),如果等,則遞增,否則為1。
-- 第二行,純粹是用來賦值。


UPDATE 
  xxx p,
  (SELECT 
    n.id,
    n.begin_time,
    m.begin_time AS end_time,
    TIMESTAMPDIFF(
      SECOND,
      n.begin_time,
      m.begin_time
    ) AS interva 
  FROM
    (SELECT 
      id,
      device_num,
      begin_time,
      IF(
        @last_device_num = a.device_num,
        @rank := @rank + 1,
        @rank := 1
      ) AS row_number,
      @last_device_num := a.device_num 
    FROM
      (SELECT 
        * 
      FROM
        xxx
      ORDER BY device_num,
        user_id,
        book_id,
        begin_time ASC) a,
      (SELECT 
        @rownum := 0,
        @last_device_num := NULL,
        @rank := 0) b) m 
    RIGHT JOIN 
      (SELECT 
        id,
        device_num,
        begin_time,
        IF(
          @last_device_num1 = a.device_num,
          @rank1 := @rank1 + 1,
          @rank1 := 2
        ) AS row_number,
        @last_device_num1 := a.device_num 
      FROM
        (SELECT 
          * 
        FROM
          xxx
        ORDER BY device_num,
          user_id,
          book_id,
          begin_time ASC) a,
        (SELECT 
          @rownum1 := 0,
          @last_device_num1 := NULL,
          @rank1 := 1) b) n 
      ON m.row_number = n.row_number 
      AND m.device_num = n.device_num) q 
SET
  p.`end_time` = q.end_time,
  p.`read_time` = q.interva 
WHERE p.id = q.id 





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌兰浩特市| 周口市| 金门县| 义乌市| 东平县| 盱眙县| 班玛县| 鹤岗市| 巫山县| 潞城市| 老河口市| 宣武区| 禹州市| 英吉沙县| 资源县| 昌江| 连云港市| 澄城县| 饶阳县| 五常市| 大悟县| 新密市| 滨海县| 德安县| 长乐市| 尤溪县| 绥滨县| 积石山| 临漳县| 白沙| 富宁县| 黄梅县| 绩溪县| 兰坪| 瑞金市| 长阳| 都江堰市| 金华市| 萨迦县| 郎溪县| 雅江县|