|
|
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
tanglirЯ это понимаю так, что на таких дынных #abc1123214567345245644513575456и при условии, что начинаем мы от строки №1, в первой группе будут строки 1,2,3, 4 . Четвёртая попадёт на второй итерации наполнения первой группы (по совпадению пестолбца с уже накопившейся строкой №3). Совершенно верно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 10:21:20 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Artem07, Если это верно, то есть 4-я запись попадает на втором шаге итерации, то или результат будет зависеть от порядка обхода таблицы при однопроходном варианте ИЛИ надо на каждый шаг итерации делать самостоятельный просмотр. Ибо, переставьте записи 3 и 4 местами и теперь, эта (бывшая 4-я) в выборку НЕ попадает. Или надо просматривать таблицу заново при КАЖДОМ новом включении. N^2 и не меньше итераций... это ни разу не РА. То бишь задача не для скуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 10:42:51 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Arhat109...... То бишь задача не для скуля. Тоже уже склоняюсь к разбору на php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 10:57:18 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Arhat109ну и/или будет сильно зависеть от порядка накопления в группеПример, пожалуйста. Я что-то не вижу здесь зависимости от порядка накопления в группе . От порядка выбора первых записей групп - да. Arhat109переставьте записи 3 и 4 местами и теперь, эта (бывшая 4-я) в выборку НЕ попадаетЭто не с фига ли? Я так понял, на каждой итерации надо просматривать всю таблицу, иначе какой нахрен вообще смысл в этой задаче... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 12:22:10 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
tanglir, Ну, тогда имеем N^2 сканов таблицы ... со всеми "вытекающими". Или задача не для скуля. Причем, по сути любого. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 14:59:05 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Arhat109Artem07, Отталкивался от этой постановки задачи: автор-в группу N входят: --первая запись --все записи, где первый столбец совпадает с первым столбцом начальной записи --все записи, где второй столбец совпадает со вторым столбцом начальной записи (или с любым из уже накопившихся в группе? из примеров неясно) -группа N сформирована -убираем все записи группы N из общего набора и начинаем формировать группу (N+1)... Так? Отсюда: 1. "Родонасяльником группы" могут быть только записи с не повторяющимися комбинациями значений. Ну или "заданное" начало. Это самый внутренний подзапрос отлавливающий все "N". ...... Подскажите плиз как это реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 23:31:40 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Artem07, сначала уточните, я тут 17434397 прав или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 04:54:40 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Ну или Arhat109 здесь 17433824 прав или нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 04:55:40 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Artem07, Практически стандартно. См. выбор уникальных записей... джойн таблицы самой с собой по заданным условиям, группировка и отсев всего, где HAVING COUNT() больше 1. Это может оказаться затратно в ряде случаев, но это хотя бы нормальная задача для скуля и РА в целом. В отличии от рекурсии, которая у вас прорисовывается чуть более чем явно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 08:33:40 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
tanglirНу или Arhat109 здесь 17433824 прав или нет :) Абсолютно прав, полностью решить все средствами скула не получится, пытаюсь извлечь максимум) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 11:06:48 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Фух, что то я совсем запутался, вернулся к "лучшему" результату 17423486 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 11:23:47 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
Artem07Абсолютно прав, полностью решить все средствами скула не получитсяНу так если он прав, то на переменных это спокойно можно сделать, главное - определиться с порядком обхода записей. В принципе пример из фака по выборке первого/последнего в группе - практически готовое решение, вам надо только условие на попадание в группу переписать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 11:30:40 |
|
||
|
Выборка с группировкой (хитрая)
|
|||
|---|---|---|---|
|
#18+
tanglir, Мне все таки больше нравится (понятнее) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Только вот как отсечь на половину дублирующие строки? Предполагал что получится использовать IN(), NOT IN() Код: sql 1. Но что то не выходит( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 11:49:06 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38918767&tid=1833377]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 191ms |
| total: | 331ms |

| 0 / 0 |
