TransWikia.com

Как убрать первые строки для каждой группы (mysql)?

Stack Overflow на русском Asked by maxdembovsky on March 2, 2021

Есть таблица с данными клиентов (клиент, тариф и дата начала использования тарифа).

введите сюда описание изображения

Нужно написать запрос (СУБД mysql), чтобы исключить первые строки для каждого клиента.

Результат должен выглядеть так.

введите сюда описание изображения

One Answer

Можно с помощью коррелированного подзапроса выбрать:

SELECT * FROM tbl AS t
WHERE `date`>(
     SELECT MIN(i.`date`) FROM tbl AS i 
     WHERE i.client = t.client
     GROUP BY i.`client`
);

Или с помощью JOIN'а:

SELECT t.* FROM tbl AS t
JOIN (SELECT client, MIN(`date`) AS m_date FROM tbl GROUP BY client) AS m
  ON t.client=m.client
WHERE t.`date`>m_date;

По идее оба варианта должны быть одинаковы по сложности, но для уверенности лучше сверится с планом. Возможно, есть какой-то более оптимальный способ, но что-то мне на ум пока ничего не приходит.

Correct answer by Fat-Zer on March 2, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP