This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь попрактиковаться в SQL на реальных задачах от топовых компаний и подготовиться к собеседованиям?
Заходи на stratascratch.com — там собраны сотни задач с интервью в FAANG и других крупных компаниях
Удобный онлайн-редактор, проверка решений и пояснения помогут прокачать скилл без лишней мороки🤩
👉 @SQLPortal
Заходи на stratascratch.com — там собраны сотни задач с интервью в FAANG и других крупных компаниях
Удобный онлайн-редактор, проверка решений и пояснения помогут прокачать скилл без лишней мороки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4
Если ты запускаешь транзакцию в уровне изоляции Read Committed (назовём её tx1) и выполняешь долгий SELECT — например, с сортировками и join’ами по большим датасетам — база берёт снимок зафиксированных данных на момент старта этого запроса.
Пока этот SELECT ещё работает, другая транзакция (tx2) в другом сеансе обновляет те же строки и успевает закоммитить.
Несмотря на то что tx2 закоммитила во время выполнения SELECT, твой запрос внутри tx1 этих апдейтов не увидит, потому что каждый запрос в Read Committed использует снимок данных, сделанный в начале его выполнения. Всё, что было зафиксировано после старта запроса, отфильтровывается.
Но если потом в рамках tx1 ты запустишь ещё один SELECT, он уже увидит изменения из tx2, так как возьмёт новый снимок, включающий все коммиты, сделанные к этому моменту.
В Postgres этот снимок строится на основе идентификаторов транзакций.
👉 @SQLPortal
Пока этот SELECT ещё работает, другая транзакция (tx2) в другом сеансе обновляет те же строки и успевает закоммитить.
Несмотря на то что tx2 закоммитила во время выполнения SELECT, твой запрос внутри tx1 этих апдейтов не увидит, потому что каждый запрос в Read Committed использует снимок данных, сделанный в начале его выполнения. Всё, что было зафиксировано после старта запроса, отфильтровывается.
Но если потом в рамках tx1 ты запустишь ещё один SELECT, он уже увидит изменения из tx2, так как возьмёт новый снимок, включающий все коммиты, сделанные к этому моменту.
В Postgres этот снимок строится на основе идентификаторов транзакций.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10
This media is not supported in your browser
VIEW IN TELEGRAM
Copilot как функция в Excel
Microsoft только что анонсировала функцию copilot в Excel
Новая функция =COPILOT() в Excel позволяет анализировать данные, генерировать контент и брейнштормить прямо в ячейках таблицы
Подробнее: ссылка
👉 @SQLPortal
Microsoft только что анонсировала функцию copilot в Excel
Новая функция =COPILOT() в Excel позволяет анализировать данные, генерировать контент и брейнштормить прямо в ячейках таблицы
Подробнее: ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤3
Ряды, которые возвращают основные типы SQL-джоинов
🔸 INNER
Ряды, где значения по колонке соединения совпадают в обеих таблицах
🔸 OUTER
Все ряды из внешней таблицы плюс совпадающие ряды из внутренней. FULL OUTER JOIN сохраняет ряды из обеих таблиц
🔸 CROSS
Каждая строка комбинируется с каждой другой
👉 @SQLPortal
Ряды, где значения по колонке соединения совпадают в обеих таблицах
Все ряды из внешней таблицы плюс совпадающие ряды из внутренней. FULL OUTER JOIN сохраняет ряды из обеих таблиц
Каждая строка комбинируется с каждой другой
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Строки, которые возвращают операторов множеств в SQL:
🔸
Все строки из обеих таблиц
🔸
Строки из первой таблицы, которых нет во второй
🔸
Строки, которые есть в обеих таблицах одновременно
По умолчанию эти операторы убирают дубликаты.
Клаузa
👉 @SQLPortal
UNION
Все строки из обеих таблиц
MINUS
/ EXCEPT
Строки из первой таблицы, которых нет во второй
INTERSECT
Строки, которые есть в обеих таблицах одновременно
По умолчанию эти операторы убирают дубликаты.
Клаузa
ALL
сохраняет и учитывает дубликаты.Please open Telegram to view this post
VIEW IN TELEGRAM
👍7