如何使用 MySQL 查詢排除最新數據后各類型的 Num 總和?

如何使用 MySQL 查詢排除最新數據后各類型的 Num 總和?

按時間排序并按類型分組后計算 type 的 num 總和

給定數據表中包含按時間排序和按類型分組的數據。要計算排除最新一條數據后,其余 num 的總和,可以在 mysql 中使用如下查詢:

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

這段查詢使用 cte(通用表表達式)進行以下步驟:

  1. 添加行號:為每個類型按時間降序計算行號 row_num。
  2. 過濾出非最新數據:選擇 row_num 不等于 1 的行,從而排除最新數據。
  3. 按類型分組求和:將剩余數據按類型分組并計算 num 的總和。

最終,查詢返回了一個表格,其中包含按類型分組的 num 總和,排除了最新一條數據。

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