
«IT-Планета 2026»: задачи второго этапа по PostgreSQL
Zheka22 1 час назад «IT-Планета 2026»: задачи второго этапа по PostgreSQL Простой 39 мин 2K Блог компании Postgres Professional Ненормальное программирование * SQL * PostgreSQL * Читальный зал Туториал Продолжаем...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. Zheka22 1 час назад «IT-Планета 2026»: задачи второго этапа по PostgreSQL Простой 39 мин 2K Блог компании Postgres Professional Ненормальное программирование * SQL * PostgreSQL * Читальный зал Туториал Продолжаем проводить конкурс SQL в рамках международной олимпиады «IT-Планета 2026». Как обычно, на втором этапе участникам было предложено решить 5 задач на чистом SQL. Давайте перейдём к рассмотрению задач.
В этот раз я решил разобрать задачи на примере реальных вариантов, присланных конкурсантами. Может быть, где-то они покажутся избыточными, где-то — неоптимальными, но зато они рабочие и на их примере можно объяснить подход к решению. На момент проверки мы видим только обезличенные данные: я не знаю авторов решений, только их идентификаторы, поэтому оставим всё как есть, только идентификаторы участников.
Технические детали
Сломанная клавиатураШлагбаум парковкиСвободное место на парковкеТурнирная таблица НХЛМобильная сетьОбщие мыслиЗадача 1: Сломанная клавиатураУсловиеПрограммист Василий любил пить кофе, когда работал за ноутбуком. Он нечаянно пролил напиток, и теперь у него на клавиатуре не работают клавиши b,c,k,l,q,v,x,z,|,*,<,&,$,%. В информационной системе хранятся данные о работе агентов компании.
Каждый месяц в таблицу M сохраняются начисления за месяц. Таблицы созданы следующими командами:-- таблица «агенты» create table a (id_a int primary key, -- идентификатор агента n text not null, -- имя агента p numeric(3,1) default 0 not null -- комиссионные проценты ); -- таблица «начисления за месяц» create table m(id_m int primary key, -- идентификатор начисления id_a int not null references a (id_a), -- идентификатор агента s numeric(8,2) not null -- начисления за месяц );Руководителю Василия Сергею Петровичу срочно понадобился отчёт по работе агентов за месяц с вычисленными итоговыми суммами с учётом комиссионных процентов за месяц. Отчет нужен очень срочно, другой клавиатуры у Василия нет.
Помогите Василию написать запрос для получения данных, не используя клавиши, которые не работают. В итоговый ответ должны попасть следующие поля:Id_a — идентификатор агента;Id_m — идентификатор начисления;N — имя агента;S — начисление за месяц;P — комиссионные проценты;T — итог начисления с учётом комиссионных процентов. Расчёт итога:T = S*(1+P/100)В результат должны попасть все агенты, даже если им в этом месяце ничего не начислено.
ПримерДля следующих входных данных:insert into a values (1,'Иванов',-5. 5); insert into a values (2,'Петрова',5); insert into a values (3,'Кузнецов',0); insert into a values (4,'Волкова',2); insert into a values (5,'Зайцев',0); insert into a values (6,'Воронова',3); insert into a values (7,'Козлов',5); insert into m values (1,1,10000); insert into m values (2,2,10000); insert into m values (3,3,6000); insert into m values (4,5,5000); insert into m values (5,6,2000);Результат: id_a | id_m | n | s | p | t ------+------+----------+----------+------+---------- 1 | 1 | Иванов | 10000. 00 2 | 2 | Петрова | 10000.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





