Русский
Открыть в Telegram
SSQL

SQL

@chat_sql · группа · Технологии · в индексе с 24.05.2026
2 760участников
16пишущих за 30 дней
59сообщений за 30 дней
10 479сообщений в индексе
В
В
Data Science. SQL hubSQL-ловушка: этот UPDATE может незаметно испортить данные в продакшене Код корректный, PostgreSQL не выдаст ошибку. Но результат не так очевиден. Есть таблица товаров: CREATE TABLE products ( id INT PRIMARY KEY, price INT ); INSERT INTO products VALUES (1, 100); Применяем скидки: WI
Почему в discounts на поле id нет уникального ключа? Для уникальности скидки на один товар. Либо, если логика допускает несколько скидок товару, их нужно обрабатывать последовательно
S
S
S
Data Science. SQL hubSQL-ловушка: этот UPDATE может незаметно испортить данные в продакшене Код корректный, PostgreSQL не выдаст ошибку. Но результат не так очевиден. Есть таблица товаров: CREATE TABLE products ( id INT PRIMARY KEY, price INT ); INSERT INTO products VALUES (1, 100); Применяем скидки: WI
В СУБД PostgreSQL этот запрос вернет 90. Официальная документация PostgreSQL строго оговаривает это поведение: если строка таблицы соединяется более чем с одной строкой из источников в блоке FROM, то для обновления будет использована только одна из строк, а остальные будут проигнорированы. Какая именно строка выберется — недетерминировано (непредсказуемо), но на практике для конструкции VALUES (1, 10), (1, 20) движок берет первую запись. Поэтому Postgres выполнит операцию 100 - 10 = 90, а скидку 20 просто отбросит.
  1. .
    Нет, правильный ответ Г
Вся ветка · 1 ответ →
К
Data Science. SQL hubSQL-ловушка: этот UPDATE может незаметно испортить данные в продакшене Код корректный, PostgreSQL не выдаст ошибку. Но результат не так очевиден. Есть таблица товаров: CREATE TABLE products ( id INT PRIMARY KEY, price INT ); INSERT INTO products VALUES (1, 100); Применяем скидки: WI
Похоже на очередной накат на Postgres. Проблема в том, кто пытается выполнить такой UPDATE. Т.е решение задачи в принципе должно предусматривать дедубль. И по хорошему нужно использовать merge - там гораздо труднее поймать неочевидное поведение - именно так в продакшене серьезные дяди и тети поступают.
V
Data Science. SQL hubSQL-ловушка: этот UPDATE может незаметно испортить данные в продакшене Код корректный, PostgreSQL не выдаст ошибку. Но результат не так очевиден. Есть таблица товаров: CREATE TABLE products ( id INT PRIMARY KEY, price INT ); INSERT INTO products VALUES (1, 100); Применяем скидки: WI
При использовании UPDATE ... FROM с несколькими совпадающими строками в FROM результат непредсказуем. PostgreSQL применит UPDATE для каждой совпадающей строки, но порядок не гарантирован. Это не ошибка, а особенность поведения. PostgreSQL не запрещает такие запросы, но предупреждает, что результат может быть непредсказуемым.
L
❓ Stiven Madrid (8454104068), а ты точно не бот? Нажми на кнопку! Иначе твои сообщения будут удаляться. Вы не успели пройти капчу, ваше сообщение было удалено. Перейдите по ссылке, чтобы получить его копию и пройти проверку
Б
L
⛔ Binit ROY, тебя заблокировали (Lols Ban) Пользователь в списке глобальной блокировки бота (Lols ban) — что в таком случае делать, читайте здесь. 💡 Не хотите видеть уведомления о блокировках в чате? Включите Тихий режим в настройках бота.
L
⛔ Clayton, тебя заблокировали (Lols Ban) Пользователь в списке глобальной блокировки бота (Lols ban) — что в таком случае делать, читайте здесь. 💡 Чтобы подобные сообщения видел только заблокированный пользователь - включи опцию Тихий режим в настройках.
L
⛔ Мария, тебя заблокировали (Lols Ban) Пользователь в списке глобальной блокировки бота (Lols ban) — что в таком случае делать, читайте здесь. 💡 Хотите чистую ленту без сообщений о блокировках? Включите Тихий режим.
L
⛔ Амина, тебя заблокировали (Lols Ban) Пользователь в списке глобальной блокировки бота (Lols ban) — что в таком случае делать, читайте здесь. 💡 Чтобы подобные сообщения видел только заблокированный пользователь - включи опцию Тихий режим в настройках.
S
С
Data Science. SQL hubSQL-задача с подвохом: найдите пользователей, которые вернулись после 30 дней молчания Представьте, что вы анализируете активность пользователей сервиса. Нужно найти тех, кто вернулся после длительного перерыва. Есть таблица PostgreSQL: CREATE TABLE events ( user_id INT, event_time TIMES
WITH daily_activity AS ( SELECT DISTINCT user_id, event_time::date AS event_date FROM events ), ordered_events AS ( SELECT user_id, event_date, LAG(event_date) OVER (PARTITION BY user_id ORDER BY event_date) AS prev_event_date FROM daily_activity ) SELECT user_id, event_date AS return_date FROM ordered_events WHERE prev_event_date IS NOT NULL AND (event_date - prev_event_date) > 30;
👍1
        1. Д
          На ютуб канале @Прикладнаястатистика По плейлистам идешь, начиная с прикладная статистика week01. Там и Мастат , и питон
Вся ветка · 5 ответов →
С
  1. L
    ❓ Сирин Хафизов (384905053), а ты точно не бот? Нажми на кнопку! Иначе твои сообщения будут удаляться.
Вся ветка · 1 ответ →
К

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем