Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak pobrać pierwszy i ostatni rekord rekordu zgrupowanego w zapytaniu MySQL za pomocą funkcji agregujących?

Chcesz użyć GROUP_CONCAT i 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 

Pozwala to uniknąć kosztownych zapytań podrzędnych i uważam, że jest to ogólnie bardziej wydajne w przypadku tego konkretnego problemu.

Sprawdź strony podręcznika dla obu funkcji, aby zrozumieć ich argumenty, lub odwiedź ten artykuł, który zawiera przykład, jak to zrobić konwersja ram czasowych w MySQL więcej wyjaśnień.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykonać UPSERT, abym mógł używać zarówno nowych, jak i starych wartości w części dotyczącej aktualizacji?

  2. MySQL:Widok z podzapytanie w Ograniczeniu klauzuli FROM

  3. Jak zmodyfikować kolumnę MySQL, aby zezwolić na wartość NULL?

  4. Błędy WAMP/MySQL w niepoprawnym języku

  5. Format daty MySQL DD/MM/RRRR zapytanie wybierające?