sql_ninja
Открыть в Telegram
Канал для тех, кто знает или интересуется SQL 🛢 Взаимная помощь и позитив =) Вакансии тут - @sql_jobs Бан за: оскорбления, спам, фри рекламу, расизм, сексизм. Наш MSSQL канал - @sqlcom По рекламе: @aveLestat
БольшеРоссияКатегория не указана
2 666
Подписчики
Нет данных24 часа
Нет данных7 дней
Нет данных30 дней
Архив постов
2 666
без указания субд смотрите в гугл по запросу "<субд> delete duplicates"
там обычно первый же результат покажет как с помощью, например, row_number удалить дубли.
не разберётесь - приходите снова с указанием субд и вашим скриптом
2 666
Всем привет! Может кто то помочь решить задачку на SQL с Serializable транзакциями и фантомным чтением?
СУБД - PostgreSQL
Таблица A:
A_id: bigint (pkey)
Таблица B:
B_id: bigint (pkey)
Таблица C:
A_id: bigint (unique index)
B_id: bigint (fkey)
Таблица C может содержать в себе записи с A_id, которых еще нет в таблице А
2 параллельные транзакции с уровнем Serializable:
1 транзакция:
SELECT *
FROM C
WHERE C.A_id = {param1}
INSERT INTO A values ({param1})
2 транзакция:
SELECT *
FROM A
WHERE A.A_id = {param2}
INSERT INTO C values ({param2}, {param3})
Для примера:
param1 = 1, param2 = 2, param3 = 100
Таблица A и С пустые, в таблице B одна запись с ID = 100
Первая транзакция падает, даже если param2 != param1. То есть по факту выполнения второй транзакции результат селекта в первой не изменится
Нужно, чтобы 1 транзакция упала только при добавлении в таблицу C данных, которые повлияют на результат выполнения SELECT'а в первой транзакции
Можно ли как то это сделать на уровне запросов или БД?
2 666
Здравствуйте хотел спросить как можно отсортировать значение каждого поля к примеру в колонке: 45869 а вывод 45689?
2 666
не-не-не
буквально первое выражение цте это селект полей по трем фильтрам в where
в последующих выражениях берутся куски из результата первого выражения, на них джойнятся справочники хитро, потом всё это сливается через union all в одну таблицу и выплёвывается
2 666
поставьте себе дома комп, на его винду, на него sql сервер, создайте таблицы (витрины) описанные в ТЗ, и играйтесь с запросами, утоняя что не так здесь
2 666
Представь, что тебе менять логику этого через полгода, а ещё лучше представь что не ты это писал и тебе менять логику, да не а плюс б менять - а что то кардинальное
