我有一個名為事務的表:
transaction_date | some_string | amount
----------------- ------------------- --------
Jan 1 | "old_val" | 10
Jan 2 | "old_val" | 20
Jan 3 | "most_rest_val" | 30
----------------- ------------------- --------
需要像這樣獲得最后一行的金額和值的總和:
transaction_date | some_string | SUM(amount)
----------------- ------------------- -------------
Jan 3 | "most_recent_val" | 60
----------------- ------------------- -------------
嘗試按順序排序,但不起作用:
Select transaction_date, some_string, SUM(amount) from transactions Order By transaction_date DESC回傳帶有第一行值的總和
任何的想法?
uj5u.com熱心網友回復:
使用視窗函式而不是聚合函式來總結您的金額,然后ORDER BY .. LIMIT 1僅訪問最后一行
SELECT
transaction_date,
some_string,
SUM(amount) OVER () AS amount
FROM transactions
ORDER BY transaction_date DESC
LIMIT 1
uj5u.com熱心網友回復:
如果您真的只想要最后一行,請使用:
SELECT MAX(transaction_date) AS transaction_date,
'most_recent_val' AS some_string,
SUM(amount)
FROM transactions;
uj5u.com熱心網友回復:
使用決議函式SUM OVER:
select
transaction_date,
some_string,
sum(amount) over () as total
from mytable
order by transaction_date desc
limit 1;
演示:https : //dbfiddle.uk/?rdbms=mysql_8.0&fiddle=1975a0e977d1757c4c4f6ebd47b3a140
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/365699.html
