利用 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
該查詢使用如下步驟實現:
- row_number() 函數用于為每個類型的記錄分配一個按時間降序排列的序列號 row_num。
- 嵌套子查詢用于按 type 對記錄分組,并計算每個組中的每個記錄的 row_num。
- where 子句篩選出 row_num 不等于 1 的記錄,即排除最新的記錄。
- 最后,按 type 重新分組并計算 num 字段的總和。
上述查詢將返回一個表,其中包含每個類型的 type 和除最新一條記錄外的其余記錄中 num 字段的總和。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END