Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 23 Май, 2012, 04:17:31

Страниц: [1]
Печать
Автор Тема: GROUP по лимиту  (Прочитано 991 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Josh    ↓ 
30 Январь, 2009, 03:51:27
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

Есть задача по написанию запроса:
1.есть таблица
Text
-------------------------
|product_name|date_of_buy|
-------------------------
|      гайка     |  12.11.1980|
|      гайка     |  12.11.1980|
|      гайка     |  13.11.1980|
|      болт      |  11.11.1980|
2. что требуется:
2.1 Первая сортировка по первой букве имени что-то вроде (ORDER BY product_name DESC)
2.2 Вторая сортировка количеству записей с этим именем
2.3 Естественно GROUP BY product_name
2.4 Вот основной гемор: при всём этом в группе на каждую букву только 20 топовых
Возможно ли такое сделать средствами одного запроса?
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
phpdude    ↓ 
30 Январь, 2009, 03:56:19 , спустя 4 минуты 52 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20780
Сила слова: 1.66


Есть задача по написанию запроса:
1.есть таблица
Text
-------------------------
|product_name|date_of_buy|
-------------------------
|      гайка     |  12.11.1980|
|      гайка     |  12.11.1980|
|      гайка     |  13.11.1980|
|      болт      |  11.11.1980|
2. что требуется:
2.1 Первая сортировка по первой букве имени что-то вроде (ORDER BY product_name DESC)
2.2 Вторая сортировка количеству записей с этим именем
2.3 Естественно GROUP BY product_name
2.4 Вот основной гемор: при всём этом в группе на каждую букву только 20 топовых
Возможно ли такое сделать средствами одного запроса?
 
2.4 условие невозможно с этим всем совместить.
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Josh    ↓ 
30 Январь, 2009, 04:00:35 , спустя 4 минуты 16 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

я думаю что как раз условие 2.4 надо вынести на первый план - не выгребатьже всё, а потом пыхой сортировать?
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
phpdude    ↓ 
30 Январь, 2009, 04:16:34 , спустя 15 минут 59 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66


я думаю что как раз условие 2.4 надо вынести на первый план - не выгребатьже всё, а потом пыхой сортировать?
2/4 условие вообще не выполнить так просто))) это достаточно сложная операция, если я не торможу конечно. по хорошему надо вести учет букаф и ставить галочку мол эти элементы входят в топ-20 или не входят. легко организуеца на тригерах. :) ибо я на хабре с человеком по поводу таких запросов както аз 2ое суток общался))) решили что надо галку, иначе запрос аля битрикс получится. где будет уйма вложенных запросов + всякие if + limits и having'и.
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Josh    ↓ 
30 Январь, 2009, 04:21:36 , спустя 5 минут 2 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

ПАРДОН - Я НЕ ТАК ВИДИМО ВЫРАЗИЛСЯ!!
топ 20 подразумеваеться те продукты, которые уже отсортированы по первой букве, затем по количеству, тоесть топ, это те которых больше
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
Givi    ↓ 
30 Январь, 2009, 04:44:44 , спустя 23 минуты 8 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

Уже пробовал подобное сделать (на категорию по две новости): решено было, что легче в два запроса.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
CTAPbIu_MABP    ↓ 
30 Январь, 2009, 04:49:03 , спустя 4 минуты 19 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

Givi, почитай про UNION
Записан

java.lang.OutOfMemoryError
Josh    ↓ 
30 Январь, 2009, 04:57:32 , спустя 8 минут 29 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05


Givi, почитай про UNION
ты предлагаешь юнионом по каждой букве делать?
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
CTAPbIu_MABP    ↓ 
30 Январь, 2009, 06:43:06 , спустя 1 час 45 минут 34 секунды
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

Josh, тебе нет, ему да
Записан

java.lang.OutOfMemoryError
Givi    ↓ 
30 Январь, 2009, 07:17:36 , спустя 34 минуты 30 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

CTAPbIu_MABP
У меня тоже были дополнительные условия. Просто сокращенно привел задачу из своей потому, что на этом этапе загвоздка была и у меня и у Джоша она почти тут же.
Да и потом мое решение (запись в файл ака кеширование) дало положительный результат в виде: один раз зацепить данные, и из файла в готовом виде их отдавать - минус 1 запрос :)
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
Josh    ↓ 
30 Январь, 2009, 07:20:28 , спустя 2 минуты 52 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

решение не скажу, выкрутились как-то другим способом - каунт писали в таблицу, а поиск по первой букве вырубили вообще. Просто не мое ТЗ было. Я хер отставил бы это так :):):)
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
Страниц: [1]
Печать
 

Перейти в: