Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да извлечем първия и последния запис на групиран запис в MySQL заявка с агрегатни функции?

Искате да използвате GROUP_CONCAT и 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 

Това избягва скъпите подзаявки и като цяло го намирам за по-ефективно за този конкретен проблем.

Разгледайте страниците с ръководство за двете функции, за да разберете аргументите им, или посетете тази статия, която включва пример за това как да направите преобразуване на времеви рамки в MySQL за повече обяснения.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да броим думи в MySQL / заменител на регулярни изрази?

  2. Таблица с формат за дата на MySQL

  3. Защо този SQL код дава грешка 1066 (Не е уникална таблица/псевдоним:'user')?

  4. Създаване на потребител в MySQL

  5. Чувствителни ли са имената на колона и таблица в MySQL?