Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / группировка значений в пределах группы записей / 10 сообщений из 10, страница 1 из 1
22.12.2013, 17:07:00
    #38509292
bannndi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
Добрый день!

Подготовил файлик таблицей исходной и таблицей с желаемым результатом.

ссылка на xlsx файл: http://www.filedropper.com/table_4

Не получается сгруппировать по product_id , т.к. группировка срабатывает для всех записей таблицы.

Возможно ли сделать группировку в пределах группы записей с coming_id ? Чтобы в пределах записей с конкретным coming_id записи product_id не повторялись, но в разрезе разных coming_id - могли повторяться. Вроде задача не должна быть сложной, но подобного раньше не приходилось делать, и не получается - каждый раз группировка происходит не такая, как нужно...

По исходным данным:
coming_id - это приходная накладная

У spare_id - ( запчасти ) есть привязанные к ней возможные варианты product_id ( товары ). Они уже выбраны.

и spare_id, и product_id могут быть занесены в любую накладную произвольным кол-вом строк. Поэтому происходит так, что для одной запчасти соотвествуют разбитые на несколько строк товары

Цель такая, чтобы добиться вывода всех coming_id, в пределах которых должны быть выведены строки с запчастями, отличающимимя одним соотвествующим товаром. Запутанно, конечно. Возможно, по файлу во вложении будет проще понять, что нужно получиться..


Заранее благодарен за помощь!
...
Рейтинг: 0 / 0
22.12.2013, 18:26:46
    #38509323
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
Во блин... xlsx... на хрен знает каком сервере... совесть есть? да ещё в форуме по MySQL...
...
Рейтинг: 0 / 0
22.12.2013, 18:39:11
    #38509328
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
bannndi,

Результат в xlsx можно получить так:

Код: sql
1.
2.
select distinct *
from your_table
...
Рейтинг: 0 / 0
22.12.2013, 19:59:18
    #38509357
bannndi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
javajdbc
Спасибо большущее.. Облом в том, я знал про distinct, но не подумал что здесь он пригодится...
...
Рейтинг: 0 / 0
23.12.2013, 12:02:23
    #38509781
bannndi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
Решение с "distinct *" работает, но очень медленно. В таблице всего 4000 ряда по 10 колонок, и обработка длится около 20 секунд.

Может быть есть лучше решение? Какие вообще варианты могут быть помимо "distinct *"?..
...
Рейтинг: 0 / 0
23.12.2013, 12:15:10
    #38509800
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
Так всё-таки - где данные? В Экселе? или в MySQL?
...
Рейтинг: 0 / 0
23.12.2013, 14:21:51
    #38509981
bannndi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
Akina,

в mysql, конечно )

Исходная таблица получается в результате довольно сложного запроса. Я упростил исходную таблицу, убрал лишние колонки, оставил только значимые для решения задачи данные.

Раз уж зашел об этом разговор, - я не знаю, в каком виде здесь нужно постить исходные данные. Форматировать их в виде текста - не очень то, конвертировать в sql- тоже. Я подумал, что наглядно в готовой таблице будет гораздо понятнее, чем импортиртировать sql.
...
Рейтинг: 0 / 0
23.12.2013, 16:14:08
    #38510149
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
bannndi я не знаю, в каком виде здесь нужно постить исходные данныеТег CSV весьма неплох...
...
Рейтинг: 0 / 0
23.12.2013, 16:26:22
    #38510161
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
bannndiРешение с "distinct *" работает, но очень медленно. В таблице всего 4000 ряда по 10 колонок, и обработка длится около 20 секунд.

Может быть есть лучше решение? Какие вообще варианты могут быть помимо "distinct *"?..

попробуйте груп бау по ВСЕМ колонкам.
Нужен индекс хотябы по одной "разнообразной" колонке.

Почитайте что такое EXPLAIN и запостите его
для нескольких попробованых запросов.
...
Рейтинг: 0 / 0
23.12.2013, 17:57:56
    #38510291
bannndi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка значений в пределах группы записей
javajdbc,


Сделал индекс для первой колонки ( id прихода ), и теперь запрос отрабатывает менее чем за секунду. Поэксперементировал с составными индексами, но лучшего прироста не получил, разве что разница в -1 ряд между индексом для id прихода, и составным id прихода + id запчасти.

Не был уверен, что индекс поможет, т.к. таблица была с движком memory, но оказалось что очень даже помог )

Не знаю как здесь плюсы ставить, но еще раз спасибо )
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / группировка значений в пределах группы записей / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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