sql >> Databáze >  >> RDS >> Mysql

Jak načíst první a poslední záznam seskupeného záznamu v dotazu MySQL s agregačními funkcemi?

Chcete použít GROUP_CONCAT a 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 

Tím se vyhnete drahým dílčím dotazům a považuji to za obecně efektivnější pro tento konkrétní problém.

Podívejte se na manuálové stránky pro obě funkce, abyste porozuměli jejich argumentům, nebo navštivte tento článek, který obsahuje příklad, jak postupovat převod časového rámce v MySQL pro další vysvětlení.



  1. Spouštěč s názvem dynamického pole

  2. Extrakce podřetězců MySQL pomocí oddělovače

  3. Nainstalujte Oracle Database Client krok za krokem

  4. Je možné provést cizí klíč MySQL do jedné ze dvou možných tabulek?