---
title: "SQL: branches with avg balance over 50000"
subject: "Database Management System"
chapter: 3
key: "semester_6/database_management_system:sql-avg-balance-branch"
source: https://www.bctengineer.com/q/semester_6/database_management_system/sql-avg-balance-branch
site: BCT Engineering
---

# SQL: branches with avg balance over 50000

Database Management System · Chapter 3: Relational Languages & Relational Model

- Asked in: year not given
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_6/database_management_system/sql-avg-balance-branch
- Whole chapter: https://www.bctengineer.com/md/semester_6/database_management_system/chapter-3

## Question

Consider database schema:
Account (acc_no, branch_name, balance)
Branch (branch_name, branch_city, assets)
Customer (customer_name, customer_street, customer_city)
Loan (loan_no, branch_name, amount)
Depositor (customer_name, acc_no)
Borrower (customer_name, loan_no)
List branch name where avg acc balance is more than 50000.

## Short answer

Use SELECT branch_name FROM Account GROUP BY branch_name HAVING AVG(balance) > 50000. HAVING filters groups after averaging balances.

## Answer

Group the accounts by branch, compute the average balance of each group, and keep only the groups that satisfy the condition. A condition on an aggregate must go in `HAVING`, not `WHERE`, because `WHERE` filters rows before grouping.

```sql
SELECT   branch_name
FROM     Account
GROUP BY branch_name
HAVING   AVG(balance) > 50000;
```

To also show the average:

```sql
SELECT   branch_name, AVG(balance) AS avg_balance
FROM     Account
GROUP BY branch_name
HAVING   AVG(balance) > 50000;
```

**How it executes**
1. `GROUP BY branch_name` puts all accounts of one branch into one group.
2. `AVG(balance)` is computed for every group.
3. `HAVING` removes the groups whose average is 50000 or less.

**Sample (tested):** Dharan has balances 60000 and 70000, Pokhara has 5000 and 9000, Itahari has 10000 and 20000. Only `Dharan` is returned (average 65000).

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. Why HAVING AVG(balance) > 50000?
   A. WHERE filters rows before grouping and cannot use aggregates
   B. WHERE is slower
   C. HAVING is for rows
   D. WHERE needs a join
   Answer: A. Conditions on aggregates go in HAVING. (Key point: HAVING vs WHERE)

2. What does GROUP BY branch_name do?
   A. Averages all accounts
   B. Filters branches
   C. One group per branch so AVG is computed per branch
   D. Sorts
   Answer: C. Aggregate is per group. (Key point: Group by)

3. Dharan 60000 and 70000: what is the average?
   A. 65000
   B. 130000
   C. 60000
   D. 50000
   Answer: A. (60000+70000)/2 = 65000 > 50000. (Key point: Sample)

## Close variants set in other exams

- [SQL: branch city with assets over 1000000](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-branch-assets-million) — Database Management System, chapter 3
- [SQL: customer name and address](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-customer-name-address) — Database Management System, chapter 3
- [SQL: number of accounts per branch](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-count-accounts-branch) — Database Management System, chapter 3
- [SQL: customer names beginning with su](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-customer-name-like-su) — Database Management System, chapter 3

## Related in Database Management System

- [SQL: customer, branch, account details](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-natural-join-details) — Database Management System, chapter 3
- [SQL: create tables for bank schema](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-create-tables-bank) — Database Management System, chapter 3
- [SQL: customers with account in Dharan](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-customers-dharan-branch) — Database Management System, chapter 3
- [SQL: create and use bank database](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-create-database-bank) — Database Management System, chapter 3
- [SQL: increase balances by 100% and 50%](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Asql-update-balance-rates) — Database Management System, chapter 3
- [RA: increase loans over 10000](https://www.bctengineer.com/question.md?key=semester_6%2Fdatabase_management_system%3Ara-increase-loan-10) — Database Management System, chapter 3
