如何利用 MySQL 計算數據表中排除最新一條記錄后其余記錄的總和?

如何利用 MySQL 計算數據表中排除最新一條記錄后其余記錄的總和?

利用 mysql 計算數據表中排除最新一條后其余記錄求和

針對給定的數據表,我們需要編寫一個 mysql 查詢來計算按時間排序且按類型分組后的數據中,除最新一條記錄外的其余所有記錄中 num 字段的總和。

可以使用以下查詢來實現:

SELECT t.type, SUM(t.num) FROM (     SELECT type, num, ROW_NUMBER() OVER (PARTITION BY type ORDER BY time DESC ) AS row_num     FROM C ) t WHERE t.row_num != 1 GROUP BY t.type

該查詢使用如下步驟實現:

  1. row_number() 函數用于為每個類型的記錄分配一個按時間降序排列的序列號 row_num。
  2. 嵌套子查詢用于按 type 對記錄分組,并計算每個組中的每個記錄的 row_num。
  3. where 子句篩選出 row_num 不等于 1 的記錄,即排除最新的記錄。
  4. 最后,按 type 重新分組并計算 num 字段的總和。

上述查詢將返回一個表,其中包含每個類型的 type 和除最新一條記錄外的其余記錄中 num 字段的總和。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享