|
|
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
Ребят, я пока с 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. Строк с "товарами" будут тысячи. Интересует самое оптимальное решение с точки зрения ресурсов. на выходе хочется получить номер строчки после сортировки. Заранее прошу прощения если мои формулировки убогие :) Антон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2014, 05:27:07 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2014, 05:51:49 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglir, я понимаю почему у вас 24000 сообщений. возможно кому-то другому задача будет интереснее чем вам :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2014, 14:57:17 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
rostonixtanglir, я понимаю почему у вас 24000 сообщений. возможно кому-то другому задача будет интереснее чем вам :(Тем не менее, ссылка была дана совершенно верная. Если сразу разобраться не получается, то решайте задачу поэтапно. Для начала напишите запрос, в котором желаемые записи будут выводиться в нужном порядке, пока без нумерации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2014, 15:06:01 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
rostonixя понимаю почему у вас 24000 сообщенийрад за вас rostonixвозможно кому-то другому задача будет интереснее чем вамчто в ней интересного? 1)выбираем минимальное качество для заданного товара 2)нумеруем все записи с качеством выше найденного по убыванию качества 3)фильтруем полученный набор по заданному товару 4)выбираем одну запись из отфильтрованных ... всё пункты 1,3,4 - азы скл, ничего "интересного" в них нет ни для кого нумерация - немного сложнее, потому и дал ссылку (но интересного там тоже мало) ЗЫ. а если идти не влоб, то можно даже и не нумеровать, а использовать count() как - подумайте сами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2014, 15:08:12 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
Не понял, зачем тут нумерация Есть конкретное наименование Требуется вычислить количество наименований той же категории с большей стоимостью (ну или что там в quality не суть) Повторяю вопрос - нафига козе баян нумерация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 10:15:38 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
Нет бы хороший индекс посоветовать... ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 10:21:25 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
lamer yugaнафига козе баян нумерация?копетан отвечает - потому что ТСу нужен номер Впрочем. его можно вычислить и без "ручной" перенумерации всего, что лежит "ниже" - см. советнамёк про каунт. lamer yugaНет бы хороший индекс посоветовать... ;)(quality/*,category*/) Но ТСу с его 50 записями тот индекс "что козе баян" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 15:39:39 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglirlamer yugaнафига козе баян нумерация?копетан отвечает - потому что ТСу нужен номер При всем уважении к капитяну - для получения номера одной записи нумеровать все как-то слишком расточительно, не находите? Давайте обратимся к первоисточнику rostonixМне необходимо сделать запрос, зная название продукта name и вычислить его позицию среди других товаров его категории category. Позиция = положение в выборке после сортировки по quality (от большего значения к меньшему) Строк с "товарами" будут тысячи. Интересует самое оптимальное решение с точки зрения ресурсов. на выходе хочется получить номер строчки после сортировки. Вы были бы правы, если бы речь шла о получении позиций всех товаров. Хотя возможно я неточно понял ТСа tanglirlamer yugaНет бы хороший индекс посоветовать... ;)(quality/*,category*/) Но ТСу с его 50 записями тот индекс "что козе баян" :)Второй абзац первоисточника упоминает отнюдь не о 50 записях И я бы сказал, что правильнее (category, quality), если иметь в виду Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:09:04 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
lamer yugaВторой абзац первоисточника упоминает отнюдь не о 50 записяхцитату в студию я не находу в стартпосте ни одного упоминианя о кол-ве записей lamer yuga Код: sql 1. 2. лолшто? (с) rostonixПозиция = положение в выборке после сортировки по quality упоминание о категории в студию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:15:14 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglirя не находу в стартпосте ни одного упоминианя о кол-ве записейили речь об rostonixСтрок с "товарами" будут тысячи.? Ну так у всех поначалу "записей будут мульёны", а потом выясняется, что всё не так эпично :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:17:01 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglir, перечитайте ранее приведенную выдержку из старттопика при желании можете найти ее в первоисточнике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:18:07 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
Там же и про категории ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:19:25 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
rostonixсреди других товаров его категории categoryну да, индекс надо наоборот, признаю а вот про мульёны записей хотелось бы услышать попа дробнее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:22:36 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglirrostonixсреди других товаров его категории categoryну да, индекс надо наоборот, признаю а вот про мульёны записей хотелось бы услышать попа дробнее :)ну, это просто "Мульоны" - Ваша интерпретация вполне разумного оценочного "тысячи" А на тысячах строк с индексом все же поп риятственнее, нежели без оного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:27:43 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
lamer yugaВаша интерпретация вполне разумного оценочного "тысячи"оно б, может, и было справедливо если не брать в расчёт, что я тут немножко подольше вашего обретаюсь :) lamer yugaА на тысячах строк с индексом все же поп риятственнее, нежели без оногона тысячах строк пофиг, индекс там или не индекс (если у ТСа конфиг не 100500-летней давности) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:30:58 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglirlamer yugaВаша интерпретация вполне разумного оценочного "тысячи"оно б, может, и было справедливо если не брать в расчёт, что я тут немножко подольше вашего обретаюсь :)Аксакал обскакал Спорить не берусь, не зная постановку и цели исходной задачиtanglirlamer yugaА на тысячах строк с индексом все же поп риятственнее, нежели без оногона тысячах строк пофиг, индекс там или не индекс (если у ТСа конфиг не 100500-летней давности)А про это давайте у оптимизатора спросим - выберет ли он при наличии индекса тупой перебор всей таблицы? Хотя (с учетом вашей версии мощности таблицы) по времени - да, малоощутимо. Но и накладные расходы в этом случае невелики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:40:00 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
lamer yugaА про это давайте у оптимизатора спросим - выберет ли он при наличии индекса тупой перебор всей таблицы?Давайте. Только спрашивать надо у ТС, а его мы, боюсь, уже спугнули :) lamer yugaАксакал обскакал Спорить не берусь, не зная постановку и цели исходной задачиВ 95% случаев подобные вопросы в этом форуме задаются студентами, почему я так и уверен в бесполезности индекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:44:22 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglir, про аксакала и вспугнутых "молодых горячих джигитов", впервые увидевших большого железного коня MySQL спорить смысла не много.... А вот про оптимизатор запросов и его предпочтения - хм, а почему бы и нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 19:53:35 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
И между прочим, tanglirВ 95% случаев подобные вопросы в этом форуме задаются студентами, почему я так и уверен в бесполезности индекса.предполагая учебность задачи, дефинировать бесполезность индекса - вам это не кажется неправильным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 20:04:45 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
lamer yugaИ между прочим, tanglirВ 95% случаев подобные вопросы в этом форуме задаются студентами, почему я так и уверен в бесполезности индекса.предполагая учебность задачи, дефинировать бесполезность индекса - вам это не кажется неправильным?На 50 записях - нет. Вот ну ни капельки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 20:14:20 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglirlamer yugaИ между прочим, пропущено... предполагая учебность задачи, дефинировать бесполезность индекса - вам это не кажется неправильным?На 50 записях - нет. Вот ну ни капельки.Во-первых, напомните, пожалуйста, кто говорил по "50 записей"? И во-вторых, в учебной задаче число записей не является фактором, определяющем методологию. ЯТД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 20:18:25 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
lamer yugaнапомните, пожалуйста, кто говорил по "50 записей"?яtanglirНо ТСу с его 50 записями тот индекс "что козе баян" :) lamer yuga учебной задаче число записей не является фактором, определяющем методологиютогда нечего вылезать с просьбами об оптимальных индексах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 20:22:52 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
tanglirlamer yugaнапомните, пожалуйста, кто говорил по "50 записей"?яtanglirНо ТСу с его 50 записями тот индекс "что козе баян" :) lamer yuga учебной задаче число записей не является фактором, определяющем методологиютогда нечего вылезать с просьбами об оптимальных индексахПлз, немного более внимания с вашей стороны к тривиальным, в общем-то, вещам. Учебность задачи - исключительно ваше предположение (основанное на долгом присутствии конкретно в этом форуме ) Равно как и предположение о мощности обсуждаемой таблицы. В этой связи возникло предложение устроить break до появления ТСа с внятными комментариями по обсуждаемым вопросам. Ибо чем дальше в лес тем толще партизаны абстрактные споры решения проблемы не приближаютrostonixИнтересует самое оптимальное решение с точки зрения ресурсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2014, 20:32:54 |
|
||
|
Вычисление позиции после сортировки
|
|||
|---|---|---|---|
|
#18+
lamer yugaУчебность задачи - исключительно ваше предположениеВот увидите, оно подтвердится :) lamer yugaВ этой связи возникло предложение устроить break до появления ТСа с внятными комментариями по обсуждаемым вопросам.Согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2014, 06:29:55 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38844807&tid=1833749]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
118ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 409ms |

| 0 / 0 |
