SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.02.2017 00:41:37

wrode_coder
Участник
Зарегистрирован: 10.06.2016
Сообщений: 4

Получить минимум и максимум отдельных значений

Здравствуйте. Есть таблица `values`


CREATE TABLE IF NOT EXISTS `values` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `sel_id` varchar(10) NOT NULL,
  `value` int(11),
  PRIMARY KEY (`id`)
);

INSERT INTO `values` (`sel_id`, `value`) VALUES
('one', '2'),
('three', '1'),
('two', '3'),
('one', '3'),
('one', '1'),
('two', '1'),
('two', '3'),
('three', '3'),
('two', '3'),
('two', '6'),
('two', '0');
 

Задача заключается в том, чтобы получить минимальные и максимальные значения `value` строк, у которых поле `sel_id` = 'one' и 'two'.

Пробовал реализовать используя переменные

SET @m_1:='', @m_2:='';

SELECT MIN(@m_1), MAX(@m_1), MIN(@m_2), MAX(@m_2)
FROM `values`
WHERE
       (`sel_id`='one' AND @m_1:=`value`)
  OR (`sel_id`='two' AND @m_2:=`value`)
 

почему-то работает не правильно (не отображает @m_2 минимальное).


Помогите пожалуйста с решением такрй задачи

Отредактированно wrode_coder (23.02.2017 00:55:15)

Неактивен

 

#2 23.02.2017 01:21:57

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5291

Re: Получить минимум и максимум отдельных значений

делать присвоение переменных в части where плохая идея


SELECT `sel_id`, MIN(`value`), MAX(`value`)
FROM `values`
WHERE
       `sel_id`='one' OR `sel_id`='two'
group by `sel_id`;

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson