powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вычисление позиции после сортировки
25 сообщений из 25, страница 1 из 1
Вычисление позиции после сортировки
    #38843475
rostonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, я пока с MySQL на Вы, поэтому мне действительно сложно придумать как это лучше сделать. Буду благодарен за любую помощь.

Есть таблица

id category name quality
1 apples product1 50
2 oranges product2 20
3 oranges product3 20
4 apples product4 10
5 oranges product5 40
6 apples product6 100

Мне необходимо сделать запрос, зная название продукта name и вычислить его позицию среди других товаров его категории category.
Позиция = положение в выборке после сортировки по quality (от большего значения к меньшему)

Вычисления точные не нужны. Если есть другие товары с идентичным quality то примерной позиции будет достаточно. Например, product2 и product3 имеют quality 60, и мне все равно какую позицию мы вычислим: 2 или 3.
Строк с "товарами" будут тысячи.
Интересует самое оптимальное решение с точки зрения ресурсов.
на выходе хочется получить номер строчки после сортировки.

Заранее прошу прощения если мои формулировки убогие :)
Антон.
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38843476
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38843882
rostonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, я понимаю почему у вас 24000 сообщений. возможно кому-то другому задача будет интереснее чем вам :(
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38843897
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rostonixtanglir, я понимаю почему у вас 24000 сообщений. возможно кому-то другому задача будет интереснее чем вам :(Тем не менее, ссылка была дана совершенно верная.
Если сразу разобраться не получается, то решайте задачу поэтапно. Для начала напишите запрос, в котором желаемые записи будут выводиться в нужном порядке, пока без нумерации.
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38843903
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rostonixя понимаю почему у вас 24000 сообщенийрад за вас
rostonixвозможно кому-то другому задача будет интереснее чем вамчто в ней интересного?

1)выбираем минимальное качество для заданного товара
2)нумеруем все записи с качеством выше найденного по убыванию качества
3)фильтруем полученный набор по заданному товару
4)выбираем одну запись из отфильтрованных
...
всё

пункты 1,3,4 - азы скл, ничего "интересного" в них нет ни для кого
нумерация - немного сложнее, потому и дал ссылку (но интересного там тоже мало)

ЗЫ. а если идти не влоб, то можно даже и не нумеровать, а использовать count()
как - подумайте сами
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844701
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понял, зачем тут нумерация

Есть конкретное наименование
Требуется вычислить количество наименований той же категории с большей стоимостью (ну или что там в quality не суть)

Повторяю вопрос - нафига козе баян нумерация?
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844706
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет бы хороший индекс посоветовать... ;)
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844807
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer yugaнафига козе баян нумерация?копетан отвечает - потому что ТСу нужен номер
Впрочем. его можно вычислить и без "ручной" перенумерации всего, что лежит "ниже" - см. советнамёк про каунт.
lamer yugaНет бы хороший индекс посоветовать... ;)(quality/*,category*/)
Но ТСу с его 50 записями тот индекс "что козе баян" :)
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844947
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirlamer yugaнафига козе баян нумерация?копетан отвечает - потому что ТСу нужен номер
При всем уважении к капитяну - для получения номера одной записи нумеровать все как-то слишком расточительно, не находите? Давайте обратимся к первоисточнику
rostonixМне необходимо сделать запрос, зная название продукта name и вычислить его позицию среди других товаров его категории category.
Позиция = положение в выборке после сортировки по quality (от большего значения к меньшему)

Строк с "товарами" будут тысячи.
Интересует самое оптимальное решение с точки зрения ресурсов.
на выходе хочется получить номер строчки после сортировки.
Вы были бы правы, если бы речь шла о получении позиций всех товаров. Хотя возможно я неточно понял ТСа

tanglirlamer yugaНет бы хороший индекс посоветовать... ;)(quality/*,category*/)
Но ТСу с его 50 записями тот индекс "что козе баян" :)Второй абзац первоисточника упоминает отнюдь не о 50 записях
И я бы сказал, что правильнее (category, quality), если иметь в виду
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select p.name, (
  select count(*)
  from таблица t 
  where t.category=p.category 
    and t.quality >p.quality
  )as position
from таблица p
where p.name='product5';
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844952
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer yugaВторой абзац первоисточника упоминает отнюдь не о 50 записяхцитату в студию
я не находу в стартпосте ни одного упоминианя о кол-ве записей
lamer yuga
Код: sql
1.
2.
  where t.category=p.category 
    and t.quality >p.quality

лолшто? (с)
rostonixПозиция = положение в выборке после сортировки по quality упоминание о категории в студию!
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844953
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirя не находу в стартпосте ни одного упоминианя о кол-ве записейили речь об
rostonixСтрок с "товарами" будут тысячи.?
Ну так у всех поначалу "записей будут мульёны", а потом выясняется, что всё не так эпично :)
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844954
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

перечитайте ранее приведенную выдержку из старттопика
при желании можете найти ее в первоисточнике
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844956
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там же и про категории
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844959
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rostonixсреди других товаров его категории categoryну да, индекс надо наоборот, признаю
а вот про мульёны записей хотелось бы услышать попа дробнее :)
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844961
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirrostonixсреди других товаров его категории categoryну да, индекс надо наоборот, признаю
а вот про мульёны записей хотелось бы услышать попа дробнее :)ну, это просто

"Мульоны" - Ваша интерпретация вполне разумного оценочного "тысячи"
А на тысячах строк с индексом все же поп риятственнее, нежели без оного
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844963
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer yugaВаша интерпретация вполне разумного оценочного "тысячи"оно б, может, и было справедливо
если не брать в расчёт, что я тут немножко подольше вашего обретаюсь :)
lamer yugaА на тысячах строк с индексом все же поп риятственнее, нежели без оногона тысячах строк пофиг, индекс там или не индекс (если у ТСа конфиг не 100500-летней давности)
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844966
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirlamer yugaВаша интерпретация вполне разумного оценочного "тысячи"оно б, может, и было справедливо
если не брать в расчёт, что я тут немножко подольше вашего обретаюсь :)Аксакал обскакал
Спорить не берусь, не зная постановку и цели исходной задачиtanglirlamer yugaА на тысячах строк с индексом все же поп риятственнее, нежели без оногона тысячах строк пофиг, индекс там или не индекс (если у ТСа конфиг не 100500-летней давности)А про это давайте у оптимизатора спросим - выберет ли он при наличии индекса тупой перебор всей таблицы?
Хотя (с учетом вашей версии мощности таблицы) по времени - да, малоощутимо. Но и накладные расходы в этом случае невелики
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844969
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer yugaА про это давайте у оптимизатора спросим - выберет ли он при наличии индекса тупой перебор всей таблицы?Давайте. Только спрашивать надо у ТС, а его мы, боюсь, уже спугнули :)
lamer yugaАксакал обскакал
Спорить не берусь, не зная постановку и цели исходной задачиВ 95% случаев подобные вопросы в этом форуме задаются студентами, почему я так и уверен в бесполезности индекса.
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844975
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
про аксакала и вспугнутых "молодых горячих джигитов", впервые увидевших большого железного коня MySQL спорить смысла не много....

А вот про оптимизатор запросов и его предпочтения - хм, а почему бы и нет?
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844979
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И между прочим, tanglirВ 95% случаев подобные вопросы в этом форуме задаются студентами, почему я так и уверен в бесполезности индекса.предполагая учебность задачи, дефинировать бесполезность индекса - вам это не кажется неправильным?
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844985
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer yugaИ между прочим, tanglirВ 95% случаев подобные вопросы в этом форуме задаются студентами, почему я так и уверен в бесполезности индекса.предполагая учебность задачи, дефинировать бесполезность индекса - вам это не кажется неправильным?На 50 записях - нет. Вот ну ни капельки.
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844986
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirlamer yugaИ между прочим, пропущено...
предполагая учебность задачи, дефинировать бесполезность индекса - вам это не кажется неправильным?На 50 записях - нет. Вот ну ни капельки.Во-первых, напомните, пожалуйста, кто говорил по "50 записей"?
И во-вторых, в учебной задаче число записей не является фактором, определяющем методологию. ЯТД.
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844991
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer yugaнапомните, пожалуйста, кто говорил по "50 записей"?яtanglirНо ТСу с его 50 записями тот индекс "что козе баян" :)
lamer yuga учебной задаче число записей не является фактором, определяющем методологиютогда нечего вылезать с просьбами об оптимальных индексах
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38844999
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirlamer yugaнапомните, пожалуйста, кто говорил по "50 записей"?яtanglirНо ТСу с его 50 записями тот индекс "что козе баян" :)
lamer yuga учебной задаче число записей не является фактором, определяющем методологиютогда нечего вылезать с просьбами об оптимальных индексахПлз, немного более внимания с вашей стороны к тривиальным, в общем-то, вещам.
Учебность задачи - исключительно ваше предположение (основанное на долгом присутствии конкретно в этом форуме )
Равно как и предположение о мощности обсуждаемой таблицы.

В этой связи возникло предложение устроить break до появления ТСа с внятными комментариями по обсуждаемым вопросам. Ибо чем дальше в лес тем толще партизаны абстрактные споры решения проблемы не приближаютrostonixИнтересует самое оптимальное решение с точки зрения ресурсов.
...
Рейтинг: 0 / 0
Вычисление позиции после сортировки
    #38845145
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer yugaУчебность задачи - исключительно ваше предположениеВот увидите, оно подтвердится :)
lamer yugaВ этой связи возникло предложение устроить break до появления ТСа с внятными комментариями по обсуждаемым вопросам.Согласен.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вычисление позиции после сортировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]