Периодически возникает задача, которая требует сгруппировать набор данных с условием, что для атрибутов, не участвующих в группировке, нужно взять кортеж с максимальным значением по одному из полей.
Давайте рассмотрим простой пример.
Есть таблица:
Необходимо для всех article найти dealer с максимальной ценой.
Для этой задачи существует несколько очевидных и простых решений, но я знаю одно из них, которое значительно превосходит все остальные.
Сталкивались с этой задачей? Хотите увидеть новый способ ее решения? Прошу под кат.
Давайте рассмотрим простой пример.
Есть таблица:
CREATE TABLE IF NOT EXISTS shop (
id INT NOT NULL AUTO_INCREMENT,
article INT(4) ZEROFILL NOT NULL,
dealer VARCHAR(45) NOT NULL,
price DECIMAL(8,2) NOT NULL,
PRIMARY KEY (id))
ENGINE = InnoDB;
Необходимо для всех article найти dealer с максимальной ценой.
Для этой задачи существует несколько очевидных и простых решений, но я знаю одно из них, которое значительно превосходит все остальные.
Сталкивались с этой задачей? Хотите увидеть новый способ ее решения? Прошу под кат.