Q:

GREATER THAN ALL

Find names of all customers who have loans greater than all loans at Brackendale branch.
Is this ok?
Use University;

SELECT customer_name, loan_number
FROM loan NATURAL JOIN customer
HAVING MAX(amount) > ALL (SELECT sum(loan.amount)
FROM loan 
WHERE branch_name = 'Brakendale');

A:

ALL is an un-needed keyword - it does nothing as it's the default keyword for a set (the other keyword being ANY).
It is more straightforward to leave ALL out. But you probably want a group by in there and remove loan_number, otherwise each row must be in its own group.
This query seems to make more sense to me:
SELECT customer_name, MAX(amount)
FROM loan
NATURAL JOIN customer
GROUP BY customer_name
HAVING MAX(amount) > (
  SELECT sum(loan.amount)
  FROM loan 
  WHERE branch_name = 'Brakendale');

