sql >> Database teknologi >  >> RDS >> Mysql

mysql-grænse inde i gruppen?

Pointen med en aggregeret funktion (og den GROUP BY den kræver) er at lave mange rækker til en række. Så hvis du virkelig bare vil have top 5 opsparingskonti og top 5 checkkonti og top 5 USD konti osv., hvad du har brug for er mere som dette:

kriterier:top 5 af en bestemt kontotype efter account_balance

SELECT account_type, account_balance FROM accounts WHERE account_type='savings' 
   ORDER BY account_balance DESC LIMIT 5
UNION
SELECT account_type, account_balance FROM accounts WHERE account_type='chequing' 
   ORDER BY account_balance DESC LIMIT 5
UNION
SELECT account_type, account_balance FROM accounts WHERE account_type='USD' 
   ORDER BY account_balance DESC LIMIT 5;

Det er ikke kønt, men hvis du konstruerer SQL'en med et script, så er det ligetil at subb i account_types og sammenkæde en forespørgsel.



  1. mysql vælg for at returnere tomme felter for alle undtagen første række af gentagne kolonner

  2. Alternativ til ORDER BY RAND() på sammenkoblede tabeller?

  3. Hvad betyder kolonneflag i MySQL Workbench?

  4. MariaDB DEFAULT() Forklaret