sql >> Databasteknik >  >> RDS >> Mysql

Hur hämtar man den första och sista posten i en grupperad post i en MySQL-fråga med aggregerade funktioner?

Du vill använda GROUP_CONCAT och 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 

Detta undviker dyra underfrågor och jag tycker att det generellt sett är mer effektivt för just detta problem.

Kolla in manualsidorna för båda funktionerna för att förstå deras argument, eller besök den här artikeln som innehåller ett exempel på hur du gör tidsramkonvertering i MySQL för fler förklaringar.



  1. Read Committed är ett måste för Postgres-kompatibla distribuerade SQL-databaser

  2. hur man konfigurerar hibernate-konfigurationsfilen för sql-servern

  3. Bästa praxis flerspråkig webbplats

  4. MSSQL Reguljärt uttryck