--- tags: sql, LeetCode disqus: HackMD --- # 1587. Bank Account Summary II (資訊來自於`leetcode 1587`[ Bank Account Summary II](https://leetcode.com/problems/bank-account-summary-ii/description/?envType=study-plan&id=sql-i)) --- ### 銀行賬戶摘要二 #### 使用table   account 是這個表的主鍵。 該表的每一行都包含銀行中每個用戶的帳號。 表中不會有兩個具有相同名稱的用戶。   trans_id 是這個表的主鍵。 此表的每一行都包含對所有帳戶所做的所有更改。 如果用戶收到錢,則金額為正數,如果用戶轉賬,金額為負數。 所有帳戶的餘額都從 0 開始。 ## 題目說明: 編寫一個 SQL 查詢來報告餘額高於10000的用戶名稱。賬戶餘額等於涉及該賬戶的所有交易金額的總和。 以任意順序返回結果表。 查詢結果格式如下例所示。  ### 解題方式: ```sql= 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
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up