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

Hvordan henter man den første og sidste post af en grupperet post i en MySQL-forespørgsel med aggregerede funktioner?

Du vil bruge GROUP_CONCAT og SUBSTRING_INDEX :

SUBSTRING_INDEX( GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1 ) AS open
SUBSTRING_INDEX( GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1 ) AS close 

Dette undgår dyre underforespørgsler, og jeg finder det generelt mere effektivt til netop dette problem.

Tjek manualsiderne for begge funktioner for at forstå deres argumenter, eller besøg denne artikel, som indeholder et eksempel på, hvordan du gør tidsrammekonvertering i MySQL for flere forklaringer.



  1. C#:Oracle Data Type Equivalence med OracleDbType

  2. EXP() Funktion i Oracle

  3. ComboBox.ValueMember og DisplayMember

  4. Hvad er Microsoft Access? En kort introduktion til nye brugere