Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden von zwei aggregierten Werten aus einer SELECT-Unterabfrage in einer einzigen äußeren SELECT-Abfrage

Sie können die 2 Unterabfragen zu 1 zusammenführen:

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'

und treten Sie ihm wie folgt bei:

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'

Sehen Sie sich die Demo an .
Ergebnisse:

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