sql >> Databasteknik >  >> RDS >> Mysql

MySQL Välj rad med lägsta värde i kolumn

Du måste först välja lägsta ålder per klass:

select min(age) as age, class as class from t group by class

(Obs! Jag antar att du vill ha lägsta ålder per klass. Om du vill ha lägsta ålder per namn, ersätt sedan class med name i frågorna ...)

Sedan måste du sammanfoga resultatet med din tabell för att få de respektive raderna. Den fullständiga SQL-koden skulle vara

select t.* from t 
inner join
( 
  select min(age) as age, class as class from t group by class
) min_ages on t.age = min_ages.age and t.class = min_ages.class;

För optimal prestanda, se till att age är indexerad såväl som class (eller name , vilket du vill ha i din group by uttryck).



  1. MySql välja i en annan välja?

  2. Hur kan ett Oracle NUMBER ha en skala större än precisionen?

  3. Oracle-datatyp:Ska jag använda VARCHAR2 eller CHAR

  4. SQLite COUNT