rivaufa
@rivaufa

Как выбрать минимальные значения в таблице?

Есть таблица mysql с полями - страна, дата, цена. По каждой стране много дат и цен.
Можно ли одним запросам выбрать дату с самой низкой ценой в каждую страну. стран всего четыре. итого в ответе на запрос должно быть четыре строки. Пока только придумала искать минимальную цену по каждой и объединять.
SELECT id,strana,min(price) from table WHERE strana IN ('ОАЭ','Индия','Таиланд','Вьетнам') GROUP BY strana
не работает, выдает минимальную цену, но id не совпадает с id у минимальной цены
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Можно. Но запрос будет сложный.
SELECT `t2`.*
  FROM (
    SELECT `t1`.`strana`,  `t1`.`min_price`, MAX(`t2`.`date`) AS `max_date`
      FROM (
        SELECT `strana`, MIN(`price`) AS `min_price`
          FROM `table` 
          GROUP BY `strana`
      ) AS `t1`
      JOIN `table` AS `t2` ON `t2`.`strana` = `t1`.`strana` 
        AND `t2`.`price` = `t1`.`min_price`
      GROUP BY `strana`
  ) AS `t1`
  JOIN `table` AS `t2` ON `t2`.`strana` = `t1`.`strana` 
    AND `t2`.`date` = `t1`.`max_date` AND `t2`.`price` = `t1`.`min_price`
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы