sql >> Database >  >> RDS >> Mysql

mysql-limiet binnen groep?

Het punt van een aggregatiefunctie (en de GROUP BY die daarvoor nodig is) is om van veel rijen één rij te maken. Dus als je echt alleen de top 5 spaarrekeningen en de top 5 betaalrekeningen en de top 5 USD-rekeningen enz. wilt, dan heb je meer als dit nodig:

criteria:top 5 van een bepaald accounttype per 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;

Het is niet mooi, maar als je de SQL construeert met een script, is het eenvoudig om de account_types in te voeren en een query aan elkaar te koppelen.



  1. 5 snelle handige tips voor SQL Server Production DBA's

  2. ORACLE SQL*Plus-zelfstudie

  3. Schending van integriteitsbeperking:1048 Kolom 'tagable_id' kan niet null zijn

  4. Referentiewaarde van seriële kolom in een andere kolom tijdens dezelfde INSERT