|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||||||
Не работает DELETE для "повторяющихся" строк19.02.2024, 20:51. Показов 5360. Ответов 134
Здравствуйте, добрые люди!
Долго колупался с ускорением заполнения базы и доколупался до хорошей для меня скорости наполнения, однако без граблей не обошлось, когда я опустил проверки на точность параметров при замене данных получил дублирование для одного набора ключей записей с разной точностью. Исходная тема (Импорт данных из файла в БД) короткая, да и проблема видна когда пытаюсь отладить макрос в самой БД. Как видно из запроса есть 5 ключевых параметров и пара значимых полей в записи - это значение и его точность. Чтобы было понятно, чем больше число тем ниже точность. Итак нашел я замечательный пример и попробовал состряпать свой запрос на удаление повторяющейся записи с меньшей точностью. Для начала изобразил выборку, абы проверить правильно ли выбирает, оставил в последствии только те записи, что подлежат удалению:
0
|
||||||
| 19.02.2024, 20:51 | |
|
Ответы с готовыми решениями:
134
Клавиша delete не работает,а вот shift + delete работает 1. Реализовать функции для вставки и удаления строк аналогичные процедурам Insert и Delete в Турбо-Паскале.
|
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,357
|
|
| 20.02.2024, 23:24 | |
|
1
|
|
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 20.02.2024, 23:27 [ТС] | |||
|
Добавлено через 1 минуту Как-то можно это обойти? Я сейчас чисто рублю диапазоны для новых данных, чтобы не разбирать INSERT vs UPDATE
0
|
|||
|
13254 / 5933 / 1526
Регистрация: 05.10.2016
Сообщений: 16,598
|
||
| 20.02.2024, 23:31 | ||
|
... А в прочем, видимо, общение = важнее решения. Найти "братьев по разуму" уже счастье.
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 20.02.2024, 23:40 [ТС] | |||
), но все же это не мой хлебДобавлено через 2 минуты
0
|
|||
|
13254 / 5933 / 1526
Регистрация: 05.10.2016
Сообщений: 16,598
|
||
| 20.02.2024, 23:46 | ||
|
... или вы "погуглите" ...
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||
| 21.02.2024, 00:00 [ТС] | ||
|
из правой таблицы записи соответствующие условию "А" вносятся в левую таблицу (игнорируя наличие в ней данных, то бишь заполняя пустые и заменяя заполненные поля) при соблюдении условия "Б". А то просто картинка и пойми, что там имелося ввиду... То ли данные объединяются и какие при этом остаются, то ли... то ли...
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,357
|
||
| 21.02.2024, 00:11 | ||
|
Заполнение таблицы в БД, какой эффективный способ? Единственно, он, как и я, считал первое поле таблицы ключевым. Если добавить ключевое поле (ID счетчик/ключик) и адаптировать его запрос под 5 значимых полей в описании объединения, то данные должны летать мухой. зы: Сейчас попробую.
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 21.02.2024, 00:19 [ТС] | |||
|
0
|
|||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,357
|
|||||||
| 21.02.2024, 01:03 | |||||||
|
Допустим, у нас входящий набор данных после парсинга сохранен в таблице Import,
имеющим структуру, аналогичную таблице Weather (без ключевого поля ID). Запрос выберет уникальные по 5 полям записи из таблицы Import и сохранит их в Weather:
Тут я лоханулся. Не нужно в данном случае ключевое поле, подойдет любое другое.
0
|
|||||||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 21.02.2024, 01:12 [ТС] | |||
|
и где тут фильтровать по новизне и разрешению? или какой выигрыш от того, что сначала пишем во временную таблицу, а потом объединяем, но без фильтров? И зачем внешний SELECT по всем записям из вложенного??? всё пойдемте отдыхать!!!
0
|
|||
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
|
|
| 21.02.2024, 02:57 | |
|
0
|
|
|
13254 / 5933 / 1526
Регистрация: 05.10.2016
Сообщений: 16,598
|
||
| 21.02.2024, 05:02 | ||
|
Там синусы - косинусы в формулах на каждом шагу ... Не по теме: Муля! - не нервируй меня!
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||||
| 21.02.2024, 10:10 [ТС] | ||||
|
Извините за панибратство, но: ребята, давайте жить дружно!
Зачем браниться, поясните лучше младшему товарищу за код ему непонятный. А систему записи координат не надо трогать, максимум, что я могу сделать - это очистить дублирующий столбец в формате float, он все равно не используется по коду нигде. Остальное меня устраивает на 100% ибо данные поступают именно в такой кодировке и мне не нужно что-то придумывать для индексирования и вычисления этих индексов с учетом сложности хранения и сравнения дробных форматов. Добавлено через 24 минуты Добавлено через 13 минут Добавлено через 13 минут
0
|
||||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,357
|
||||||||||||||||
| 21.02.2024, 11:49 | ||||||||||||||||
|
при LEFT/RIGHT JOIN. имеются "дубли" с лучшими значениями:
надо так:
Полагаю, импорт/апдейт новых порций данных пакетами будет заметно быстрее импорта отдельными инсертами, с проверкой на полные "дубли", и "дубли" с лучшими значениями. Проверить не могу, потому как нет исходных данных новых порций в том виде, который Вы пользуете, и нет Вашего алгоритма добавления данных. Добавлено через 7 минут И да, надо исполнение двух запросов обернуть в транзакцию, дабы не получить рассогласованные данные.
0
|
||||||||||||||||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 21.02.2024, 13:19 [ТС] | |||
|
- я получаю пакет файлов для каждого ID_MD и DT и SOURCE (ИД параметра метеообстановки ( температура, влажность и т.п. для разных слоев, но слои я не стал выделять ибо проще использовать готовое ИД без расшифровки) + ДАТА с временем на которую прогнозируется параметр + Источник данных), кроме того в файле содержится ДАТА составления прогноза - UDT (по хорошему в пакете файлов должна быть одна UDT для всех файлов... но это по хорошему). Проверяю ID_MD и SOURCE на нужность, а UDT на новизну(не старее текущей) - если не подходят пропускаю файл. Итак есть 4 ячейки. Опустим подробности фильтрации по диапазону широты и долготы, смысл понятен. Расшифровываем упакованный побитово массив данных. Выбираем из него сочетания широты LAT и долготы LON (Они вычисляются для каждой точки ибо в файле есть информация только о границах массива и его организации, откуда собственно и берется качество данных - QUAL в виде расстояния между ячейками в градусах!!!) со значением ZNCH. И да, я выбираю только те сочетания которые меня интересуют. + 4 ячейки. Последняя ячейка PDT - признак накопления данных за период, встречается только в 1 параметре, но отказаться никак нельзя (вообще можно, но не хочется менять отработанную логику вычислений ибо времени мало). Вот и весь алгоритм. Т.Е. как бы я не хотел, все равно каждая строка будет вводиться по факту в БД отдельной командой Ах да, забыл, если данные идут с низким разрешением - приходится еще и интерполяцией восстанавливать пропущенные в файле значения Добавлено через 5 минут
0
|
|||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,357
|
||
| 21.02.2024, 13:29 | ||
|
Вот, Вы взяли сырые данные, обработали их, разложили каждую метрику по нужным полочкам, и с этих полочек инсертите в Weather. Как описаны полочки (набор переменных / массив / рекордсет / коллекция / что-то иное)? Далее хотелось бы кусок кода, где Вы берете данные метрик с полочек и инсертите в таблицу.
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||||||||||
| 21.02.2024, 13:44 [ТС] | |||||||||||
|
Итак:
https://cloud.mail.ru/public/MGSv/Xo9aMo5Mx https://cloud.mail.ru/public/BSgt/fbAnYUhAy первый файл за 5.02 второй за 6.02 НО, без но не получилось, если данные с высоким разрешением поступили позже низкого, то они должны были затереть низкое разрешение Однако по любому остались некоторые повторяющиеся. Добавлено через 6 минут Обертка - внешняя процедура с неработающим блоком очистки от "мусора"
0
|
|||||||||||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,357
|
|
| 21.02.2024, 13:59 | |
|
Ну так это описание аккурат "на стороне".
Тут Вам самому, при желании, придется проверять варианты на скорость исполнения. Я пас, в C++ полный 0. Попробую, для самоуспокоения, имитировать варианты на VBA, но это НЕ совсем (или совсем НЕ) корректно будет.
0
|
|
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 21.02.2024, 14:03 [ТС] | |||
|
А писать в отдельную временную таблицу я могу, если это даст выигрыш
0
|
|||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
|
|
| 21.02.2024, 14:09 | |
|
В таблице Weather прям напрашивается составной индекс на поля (ID_MD, SOURCE, DT). Насколько я понял они в процессе загрузки постоянны (приходят в процедуру заполнения как константы из вне)?
0
|
|
| 21.02.2024, 14:09 | |
|
Для линейного вещественного массива найти произведение всех повторяющихся и не повторяющихся элементов Как вызвать "Delete" для строк?
Почему не работает Update, но работает аналогичный Delete?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|