Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de deux valeurs agrégées d'une sous-requête SELECT dans une seule requête SELECT externe

Vous pouvez fusionner les 2 sous-requêtes en 1 :

SELECT MAX(c.cust_id) AS max_nh_cust_id,
       MAX(a.avail_balance) AS max_nh_avail_balance 
FROM account a INNER JOIN customer c 
ON a.cust_id = c.cust_id 
WHERE c.state = 'NH'

et rejoignez-le comme ceci :

SELECT a.cust_id
FROM account a 
INNER JOIN customer c ON a.cust_id = c.cust_id
INNER JOIN (
  SELECT MAX(c.cust_id) AS max_nh_cust_id,
         MAX(a.avail_balance) AS max_nh_avail_balance 
  FROM account a INNER JOIN customer c 
  ON a.cust_id = c.cust_id 
  WHERE c.state = 'NH'
) t ON c.cust_id > t.max_nh_cust_id AND a.avail_balance > t.max_nh_avail_balance
WHERE c.state = 'MA'

Voir la démo .
Résultats :

> | cust_id |
> | ------: |
> |      13 |