1587. Bank Account Summary II

(資訊來自於leetcode 1587 Bank Account Summary II)


銀行賬戶摘要二

使用table

account 是這個表的主鍵。
該表的每一行都包含銀行中每個用戶的帳號。
表中不會有兩個具有相同名稱的用戶。

trans_id 是這個表的主鍵。
此表的每一行都包含對所有帳戶所做的所有更改。
如果用戶收到錢,則金額為正數,如果用戶轉賬,金額為負數。
所有帳戶的餘額都從 0 開始。

題目說明:

編寫一個 SQL 查詢來報告餘額高於10000的用戶名稱。賬戶餘額等於涉及該賬戶的所有交易金額的總和。

以任意順序返回結果表。

查詢結果格式如下例所示。

解題方式:

select B.name , sum(M.amount) balance
from Transactions M
left outer join Users B on M.account = B.account
group by B.name
having sum(M.amount)>10000

解題解析:

利用聚合函數SUM()把amount(轉帳或是存款)加總起來,就可以知道該帳戶的餘額。
再用having來當where使用,找出加總起來超過10000的用戶,而having相當於where因為聚合函數不能用where來找尋,因此在這使用having。

By. @OtbmOtOMRzCEOxuIjDNc8A