Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 Проблема с GROUP BY  [new]
artyman
Member

Откуда:
Сообщений: 11
Добрый день, я совсем начинающий пользователь SQL.
Вопрос следующий, имеется таблица:

id name value
1 abc 123
2 cde 234
3 def 567
4 def 456
5 def 345


Вывод необходимо получить следующий:

id name value
1 abc 123
2 cde 234
5 def 345



SELECT `id`, `name`, MIN(`value`) FROM `test` GROUP BY `name`
- выдает ошибку
15 ноя 20, 15:41    [22232377]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с GROUP BY  [new]
artyman
Member

Откуда:
Сообщений: 11
artyman,
Нашел ниже похожий вопрос, вариант решения получается следующий:

SELECT * FROM
  (SELECT *, row_number()over(partition by `name` order by `id` desc) as rn
  FROM `test`) t
where rn = 1
15 ноя 20, 16:11    [22232389]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с GROUP BY  [new]
Gluck99
Member

Откуда: Оттуда
Сообщений: 1091
artyman,
Если исключить ID, то должно работать.
SELECT t.name, MIN(t.value) FROM test t
GROUP BY t.name
15 ноя 20, 18:22    [22232421]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с GROUP BY  [new]
Dino_zavr
Member

Откуда:
Сообщений: 31
artyman
artyman,
Нашел ниже похожий вопрос, вариант решения получается следующий:

SELECT * FROM
  (SELECT *, row_number()over(partition by `name` order by `id` desc) as rn
  FROM `test`) t
where rn = 1


Зависит от того почему нужно def = 345
1. оно наименьшее в поле Value
2. наибольшее в поле id
15 ноя 20, 22:30    [22232519]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с GROUP BY  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20785
Чисто поржать:
SELECT DISTINCT t3.*
FROM test t1,
LATERAL ( SELECT t2.*
          FROM test t2
          WHERE t1.name = t2.name
          ORDER BY t2.value LIMIT 1 ) t3

Но работать будет. Правда, начиная с 8.0.14.
15 ноя 20, 23:14    [22232537]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с GROUP BY  [new]
artyman
Member

Откуда:
Сообщений: 11
Dino_zavr

Зависит от того почему нужно def = 345
1. оно наименьшее в поле Value
2. наибольшее в поле id


1. оно наименьшее в поле Value - да, нужно минимальное значение
15 ноя 20, 23:49    [22232543]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с GROUP BY  [new]
Dino_zavr
Member

Откуда:
Сообщений: 31
artyman
Dino_zavr

Зависит от того почему нужно def = 345
1. оно наименьшее в поле Value
2. наибольшее в поле id


1. оно наименьшее в поле Value - да, нужно минимальное значение

ну тогда нужно не order by `id` desc а order by `Value` asc
вроде само собой, но на всякий )))

Сообщение было отредактировано: 17 ноя 20, 12:03
17 ноя 20, 12:07    [22233608]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить