powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка с группировкой (хитрая)
13 сообщений из 38, страница 2 из 2
Выборка с группировкой (хитрая)
    #38917377
Artem07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirЯ это понимаю так, что на таких дынных
#abc1123214567345245644513575456и при условии, что начинаем мы от строки №1, в первой группе будут строки 1,2,3, 4 . Четвёртая попадёт на второй итерации наполнения первой группы (по совпадению пестолбца с уже накопившейся строкой №3).
Совершенно верно
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38917408
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem07,

Если это верно, то есть 4-я запись попадает на втором шаге итерации, то или результат будет зависеть от порядка обхода таблицы при однопроходном варианте ИЛИ надо на каждый шаг итерации делать самостоятельный просмотр.

Ибо, переставьте записи 3 и 4 местами и теперь, эта (бывшая 4-я) в выборку НЕ попадает. Или надо просматривать таблицу заново при КАЖДОМ новом включении. N^2 и не меньше итераций... это ни разу не РА. То бишь задача не для скуля.
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38917425
Artem07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109...... То бишь задача не для скуля.
Тоже уже склоняюсь к разбору на php
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38917539
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109ну и/или будет сильно зависеть от порядка накопления в группеПример, пожалуйста. Я что-то не вижу здесь зависимости от порядка накопления в группе . От порядка выбора первых записей групп - да.
Arhat109переставьте записи 3 и 4 местами и теперь, эта (бывшая 4-я) в выборку НЕ попадаетЭто не с фига ли? Я так понял, на каждой итерации надо просматривать всю таблицу, иначе какой нахрен вообще смысл в этой задаче...
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38917784
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

Ну, тогда имеем N^2 сканов таблицы ... со всеми "вытекающими". Или задача не для скуля. Причем, по сути любого. :)
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38918246
Artem07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109Artem07,

Отталкивался от этой постановки задачи:

автор-в группу N входят:
--первая запись
--все записи, где первый столбец совпадает с первым столбцом начальной записи
--все записи, где второй столбец совпадает со вторым столбцом начальной записи (или с любым из уже накопившихся в группе? из примеров неясно)
-группа N сформирована
-убираем все записи группы N из общего набора и начинаем формировать группу (N+1)...

Так?

Отсюда:

1. "Родонасяльником группы" могут быть только записи с не повторяющимися комбинациями значений. Ну или "заданное" начало. Это самый внутренний подзапрос отлавливающий все "N".
......

Подскажите плиз как это реализовать?
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38918327
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem07, сначала уточните, я тут 17434397 прав или нет?
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38918328
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или Arhat109 здесь 17433824 прав или нет :)
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38918376
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem07,

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

В отличии от рекурсии, которая у вас прорисовывается чуть более чем явно. :)
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38918625
Artem07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirНу или Arhat109 здесь 17433824 прав или нет :)
Абсолютно прав, полностью решить все средствами скула не получится, пытаюсь извлечь максимум)
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38918676
Artem07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фух, что то я совсем запутался, вернулся к "лучшему" результату 17423486
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38918703
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem07Абсолютно прав, полностью решить все средствами скула не получитсяНу так если он прав, то на переменных это спокойно можно сделать, главное - определиться с порядком обхода записей. В принципе пример из фака по выборке первого/последнего в группе - практически готовое решение, вам надо только условие на попадание в группу переписать.
...
Рейтинг: 0 / 0
Выборка с группировкой (хитрая)
    #38918767
Artem07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Мне все таки больше нравится (понятнее)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 
  group_concat(DISTINCT t.a ORDER BY t.a) AS ca,
  group_concat(DISTINCT t.b ORDER BY t.b) AS cb,
  group_concat(DISTINCT t.c  ORDER BY t.c) AS cc,
  count(*) AS total,
  test.*
FROM test
  LEFT JOIN test AS t ON
    (t.a=test.a OR t.b=test.b OR t.c=test.c)
GROUP BY test.a, test.b, test.c;



Только вот как отсечь на половину дублирующие строки?
Предполагал что получится использовать IN(), NOT IN()

Код: sql
1.
HAVING test.a NOT IN (test.ca)............



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


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