[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SQL ORDER + GROUP
AllesKlar
Доброго всем.
Чёт туплю, помоожите.

2 значимых поля, в одном цена во втором некий код.

  
price | code
----------------------
10 | AAA
2 | BBB
5 | AAA
15 | CCC
3 | BBB
6 | CCC


Нужно отсортировать по цене, а потом взять только по одному code, самому дешовому из своей группы
Типа такого:
 SELECT * FROM table ORDER BY price ASC GROUP BY code
//Это, естественно, не правильно.

результат чтобы был такой:
2, BBB 
5, AAA
6, CCC

Кто может правильно?

_____________
[продано копирайтерам]
paul85
По-моему это через подзапрос только делается...

Что-нибудь вроде

SELECT * FROM
(SELECT * FROM table ORDER BY price) AS subq
GROUP BY code

Group by "набирает" по первому включению.

P.s. Если это MySQL
Invis1ble
насколько я помню, это довольно-таки интересная задача, которая иногда предлагается на собеседованиях
решается несколькими способами, с различными извращенными подзапросами (для оптимизации)

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

AllesKlar
paul85
Спасибо. У меня MsSQL
С небольшой доработкой в виде странного костыля работает.
В переводе на MySQL
SELECT * FROM
(SELECT * FROM table ORDER BY price LIMIT 10000) AS subq
GROUP BY code

Без LIMIT не работает, 10000 заведомо большое число ( некрасивый костыль, но с практической точки зрения мне достаточно :) )

_____________
[продано копирайтерам]
AllesKlar
Invis1ble
Класс, то что надо :)

SELECT code, MIN( price ) AS p
FROM table
GROUP BY
code
ORDER BY p ASC


_____________
[продано копирайтерам]
Invis1ble
Цитата (AllesKlar @ 18.02.2015 - 02:52)
Invis1ble
Класс, то что надо :)

SELECT code, MIN( price ) AS p
FROM table
GROUP BY
code
ORDER BY p ASC

что-то сильно просто у тебя всё получилось, аж подозрительно smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

AllesKlar
Invis1ble
Сам в шоке biggrin.gif , но зараза, работает

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.