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

mysql - обединяване на първия и последния запис по тип група?

Използвайте „забавната“ функционалност на mysql на GROUP BY без агрегиране на другите колони, което просто връща първата ред на групата. След това проблемът се превръща в поставянето на редовете в правилния ред преди използване на тази функционалност, обикновено чрез използване на заявка с псевдоним.

Този подход избягва всякакви корелирани подзаявки (заявки на ред) и се нуждае само от две преминавания през таблицата (по едно за всяка посока на подреждане):

select x2.type, x2.dat as first_dat, y2.dat as last_dat
from (select *
  from (select type, dat
    from so8735514
    order by 1, 2) x1
  group by 1) x2
join (select *
  from (select type, dat
    from so8735514
    order by 1, 2 desc) y1
  group by 1) y2 on y2.type = x2.type;

Тестови код:

create table so8735514 (idx int, type text, dat text);
insert into so8735514 values
(0, 'a', 'foo1'),
(1, 'b', 'foo2'),
(2, 'c', 'foo3'),
(3, 'a', 'foo4'),
(4, 'b', 'foo5'),
(5, 'c', 'foo6'),
(6, 'a', 'foo7'),
(7, 'b', 'foo8'),
(8, 'c', 'foo9');

Изход:

+------+-----------+----------+
| type | first_dat | last_dat |
+------+-----------+----------+
| a    | foo1      | foo7     |
| b    | foo2      | foo8     |
| c    | foo3      | foo9     |
+------+-----------+----------+



  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 и показване под формата на текстова таблица ascii в браузъра

  2. Как да извличам изображения от базата данни MySQL и да ги показвам в html таг

  3. Latin-1 / UTF-8 кодиране php

  4. MySQL:Пребройте записи от една таблица и след това актуализирайте друга

  5. оператор select вътре в инструкцията за вмъкване в sql връща няколко реда