powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка строк без временной таблицы
6 сообщений из 6, страница 1 из 1
Выборка строк без временной таблицы
    #38740249
Grum001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, господа. Была у меня достаточно простая задача: дана таблица, в которой есть столбец ROW_NUMBER с номерами строк (т.е. в этой таблице мы можем говорить о предыдущей/следующей строке). Было нужно пройти по этой таблице и удалить те строки, в которых поле ID было аналогично полю ID предыдущей строки. Как я это сделал: перекачал данные с упорядочиванием по ROW_NUMBER во временную таблицу, организовал цикл по возрастанию ROW_NUMBER в этой таблице и, сравнивая ID текущей и предыдущей строки, удалил ненужные строки. В общем, ничего сложного. Но возникла проблема - на базе, для которой будет использоваться этот запрос, нельзя создавать временные таблицы. При этом удалять строки из основной таблицы, понятно, не вариант. И вот встает вопрос: можно ли организовать подобную выборку без временной таблицы, просто по селекту из основной таблицы? Технически, так как в выборке по селекту будет порядковый номер строки ROW_NUMBER, я смогу в цикле находить для сравнения "текущую" и "предыдущую" строки, но вот каким образом их хранить, если нельзя складывать во временную таблицу?
...
Рейтинг: 0 / 0
Выборка строк без временной таблицы
    #38740250
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а каким образом вы добились, чтобы при разных роу-намбер были одинаковые айди?
...
Рейтинг: 0 / 0
Выборка строк без временной таблицы
    #38740260
Grum001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453, ну, это не я добивался :) Смысл всей таблицы в том, что она по сути отражает один и тот же промышленный объект. У этого объекта время от времени меняется ID, под которым он числится в документах. Новая строка с состоянием добавляется каждый месяц. Значение ID может не изменяться много месяцев подряд, и в такие периоды идут одинаковые строки, только поле ROW_NUMBER и меняется. В результате найти моменты, когда ID изменяется, очень тяжело - в этой таблице уже 30.000+ строк. Собственно, мой запрос с отбором строк был для того и нужен, чтобы вычленить моменты, когда ID этого промышленного объекта меняется.
...
Рейтинг: 0 / 0
Выборка строк без временной таблицы
    #38740293
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select *
from table1 a left join table1 b on(a.row = b.row+1)
where
a.id <> b.id

дожин дайт нам таблицу вида

поля для роу Н строки + поля для строки роу=Н+1 (следующая)
берём только те, где айди стал другим
...
Рейтинг: 0 / 0
Выборка строк без временной таблицы
    #38740308
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в целом конечно же и лудше и надо и правильно раз встал вопрос. перестать заниматься черчи чем.

есть обьект с айди. который меняеться.

надо таблица текущего состояния, таблица изменений.

роу что означает не совсем ясно, да бог сним.

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

тогда
получить все изменения поля А за период определёного месяца

ВЫБРАТЬ дату, поле А
ИЗ история_изменений
ГДЕ дата между началом и концом нужного месяца
И полеА ЕСТЬ НЕ НУЛЛ

получим только те записи, которые отображают изменения именно поля А(возможно ещо какихто)
...
Рейтинг: 0 / 0
Выборка строк без временной таблицы
    #38740310
Grum001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453select *
from table1 a left join table1 b on(a.row = b.row+1)
where
a.id <> b.id


Попробую, тоже были мысли джойнить.

alex564657498765453надо таблица текущего состояния, таблица изменений

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


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