🔹Задачи🔹
Давно не было задачек с собесов😎
➖➖➖➖➖➖➖➖➖➖➖➖
📌Т-банк задача про должников (lvl mid):
Даны 3 таблицы:
Задание: вывести список недолжников на сегодня.
➖➖➖➖➖➖➖➖➖➖➖➖
📌Х5 (lvl jun)
Даны таблицы t1 и t2.
❓ Сколько будет записей при следующих типах соединений:
❓ В чем разница между типом данных CHAR и VARCHAR в SQL?
❓ Каким образом можно найти третий по счету максимальный результат в каждой category?
➖➖➖➖➖➖➖➖➖➖➖➖
📌Росбанк (lvl jun)
Дана таблица:
0️⃣ Вывести список руководителей
1️⃣Вывести список сотрудников, которые старше своего непосредственного руководителя
2️⃣Найти второго самого старшего сотрудника
3️⃣Предположим, что в таблице на 1 сотрудника может быть 2 записи, у одной из которых не заполнена дата рождения. Нужно удалить такие дубли из таблицы
➖➖➖➖➖➖➖➖➖➖➖➖
Как вам задачки?
*Некоторые похожие задачки на канале уже были разобраны.
Не стесняемся, присылайте любые свои решения в комменты, хочу увидеть, что вам это интересно⬇️
И насыпьте реакций 😁😊
it пингвин | data engineer 🐧
#sql #задача
Давно не было задачек с собесов
➖➖➖➖➖➖➖➖➖➖➖➖
📌Т-банк задача про должников (lvl mid):
Даны 3 таблицы:
1) таблица со счетами кредитных карт account:
account_id (id счета)
2) таблица с выписками по кредитным картам statement:
statement_id (id выписки),
account_id (id счета),
statement_dt (дата выписки),
due_dt (дата погашения выписки),
min_amt (мин. сумма погашения)
3) таблица с платежами клиентов payment:
payment_id (id платежа),
account_id (id счета),
payment_dt (дата платежа),
payment_amt (сумма платежа)
Задание: вывести список недолжников на сегодня.
➖➖➖➖➖➖➖➖➖➖➖➖
📌Х5 (lvl jun)
Даны таблицы t1 и t2.
|t1.a| |t2.a|
|----+ |----+
|1 | |1 |
|2 | |3 |
|3 | |4 |
|6 |
INNER JOIN t1.a = t2.a
LEFT JOIN t1.a = t2.a
FULL OUTER JOIN t1.a = t2.a
таблица:
- id
- result
- category
➖➖➖➖➖➖➖➖➖➖➖➖
📌Росбанк (lvl jun)
Дана таблица:
create table employee
(
id integer, -- ID сотрудника
department_id integer, -- ID подразделения, в котором работает сотрудник
chief_flg boolean, -- флаг того, что сотрудник занимает руководящую позицию
birth_dt date -- дата рождения
)
0️⃣ Вывести список руководителей
1️⃣Вывести список сотрудников, которые старше своего непосредственного руководителя
2️⃣Найти второго самого старшего сотрудника
3️⃣Предположим, что в таблице на 1 сотрудника может быть 2 записи, у одной из которых не заполнена дата рождения. Нужно удалить такие дубли из таблицы
➖➖➖➖➖➖➖➖➖➖➖➖
Как вам задачки?
*Некоторые похожие задачки на канале уже были разобраны.
Не стесняемся, присылайте любые свои решения в комменты, хочу увидеть, что вам это интересно
И насыпьте реакций 😁
it пингвин | data engineer 🐧
#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍10❤4😱1 1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥11 5👍3❤2😁2💅2😱1 1
Всем привет!😎
Увидел хороший отклик по недавним задачам.
Сегодня выкладываю задачу посложнее - уровень middle+
Реальная задача с собеседования с Альфа-банком😳
Задача:
Вывести имена клиентов, у которых есть хотя бы один активный счет, открытый больше года назад, и которые за последний месяц по всем своим счетам совершили транзакций меньше, чем на 5000.
Под активным счетом понимается счет, по которому в текущем месяце есть хотя бы одна транзакция.
Под годом/месяцем понимается интервал один год/один месяц от календарной даты.
При необходимости нагенерите тестовые данные. Ваши решения и предложения жду в комментах.
Кто решит - реально красавчик🏆 🔥 🤘
Свое решение выложу в пятницу😁
it пингвин | data engineer 🐧
#sql #задача
Увидел хороший отклик по недавним задачам.
Сегодня выкладываю задачу посложнее - уровень middle+
Реальная задача с собеседования с Альфа-банком
--Создать таблицы
--CLIENT “КЛИЕНТ”
ID ID клиента
NAME имя клиента
--ACCOUNT “СЧЕТ”
ID ID счета
CLIENT_ID ID клиента
OPEN_DT дата открытия счета
CLOSE_DT дата закрытия счета
--TRANSACTION “ТРАНЗАКЦИИ ПО СЧЕТУ”
ID ID транзакции
ACCOUNT_ID ID счета
TRANSACTION_DATE дата транзакции
AMOUNT Сумма транзакции
Задача:
Вывести имена клиентов, у которых есть хотя бы один активный счет, открытый больше года назад, и которые за последний месяц по всем своим счетам совершили транзакций меньше, чем на 5000.
Под активным счетом понимается счет, по которому в текущем месяце есть хотя бы одна транзакция.
Под годом/месяцем понимается интервал один год/один месяц от календарной даты.
При необходимости нагенерите тестовые данные. Ваши решения и предложения жду в комментах.
Кто решит - реально красавчик
Свое решение выложу в пятницу
it пингвин | data engineer 🐧
#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻4👍3🔥3 3🫡2❤1😱1
У меня уже несколько раз просили прислать книгу "Основы инженерии данных" - Джо Рис.
В мире data инженерии она на небольшом хайпе.
Я сейчас опубликую книгу, кому надо сохраните, я чуть позже удалю пост.
Вроде как слитые книги в тг канале нельзя публиковать🏴☠️ 😅
upd. книгу уже открепил😬
Я эту книгу еще не прочитал. Позже сделаю краткую рецензию. Сейчас уже могу сказать, что особо не впечатлен книгой и прям какой-то крутой инфы в ней нет. Но читается легко и моментами интересно😁
it пингвин | data engineer 🐧
#полезная_инфа
В мире data инженерии она на небольшом хайпе.
Я сейчас опубликую книгу, кому надо сохраните, я чуть позже удалю пост.
Вроде как слитые книги в тг канале нельзя публиковать
upd. книгу уже открепил
Я эту книгу еще не прочитал. Позже сделаю краткую рецензию. Сейчас уже могу сказать, что особо не впечатлен книгой и прям какой-то крутой инфы в ней нет. Но читается легко и моментами интересно😁
it пингвин | data engineer 🐧
#полезная_инфа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥9👍2💅2 1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣14 6😁2😱1 1
Forwarded from Я – Дата Инженер
Bootcamp чат для ВСЕХ!
Открыли чат с программой Буткемпа для ВСЕХ!
ссылка на чат
Заходите все, кто думает пройти буткемп, залететь наконец-то в IT или просто из интереса. Внутри есть программа обучения. Мы ждем пожелания и боли от вас. Программу возможно скорреткируем, если увидим конкретные хотелки!
Это не курс, здесь не будет никаких нудных и душных лекций. Мы вычеркиваем очень много бесполезной инфы.
Смело задавайте свои вопросы, а мы будем на них отвечать.
Цель буткемпа - как можно скорее запрыгнуть в поезд IT!
Открыли чат с программой Буткемпа для ВСЕХ!
ссылка на чат
Заходите все, кто думает пройти буткемп, залететь наконец-то в IT или просто из интереса. Внутри есть программа обучения. Мы ждем пожелания и боли от вас. Программу возможно скорреткируем, если увидим конкретные хотелки!
Это не курс, здесь не будет никаких нудных и душных лекций. Мы вычеркиваем очень много бесполезной инфы.
Смело задавайте свои вопросы, а мы будем на них отвечать.
Цель буткемпа - как можно скорее запрыгнуть в поезд IT!
👍5❤2🔥2🎉1
Привет, работяги 🫡
Всех с пятницей, остался чуть-чуть продержаться✊
Выкладываю обещанное решение задачи:
*SQL- оракловый, но я думаю(надеюсь) всем будет понятен синтаксис.
Как по мне, получилось очень лаконичное и оптимизированное решение без множества подзапросов и cte🤔
А как вам задачка и решение?⬇️
it пингвин | data engineer 🐧
#sql #задача
Всех с пятницей, остался чуть-чуть продержаться
Выкладываю обещанное решение задачи:
Вывести имена клиентов, у которых есть хотя бы один активный счет, открытый больше года назад, и которые за последний месяц по всем своим счетам совершили транзакций меньше, чем на 5000.
Под активным счетом понимается счет, по которому в текущем месяце есть хотя бы одна транзакция.
Под годом/месяцем понимается интервал один год/один месяц от календарной даты.
select
c.name
from account a
join client c on c.id=a.client_id and a.open_dt<trunc(sysdate)-interval '1' YEAR and coalesce(a.close_dt,to_date('59991231','yyyymmdd'))>trunc(sysdate)
join transaction t on t.account_id=a.id and t.transaction_date between trunc(sysdate)-interval '1' MONTH and trunc(sysdate)
group by c.name having(sum(coalesce(t.amount,0)))<5000
*SQL- оракловый, но я думаю(надеюсь) всем будет понятен синтаксис.
Как по мне, получилось очень лаконичное и оптимизированное решение без множества подзапросов и cte
А как вам задачка и решение?
it пингвин | data engineer 🐧
#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥8❤4👍3 3🤯2💅1
Друзья, всем привет 🤝
Сделал статью по индексам и партициям для роадмапа DE. Также хочу поделиться статьей с вами в более удобном виде.
Рассказал на пальцах, что такое индексы и партиции, а дальше немного углубил. Постарался раскрыть темы, которые спрашивают на собеседованиях.
Для написания статьи использовал личный опыт, другие статьи и LLM.
Дайте реакцию как вам материал и интересен ли вам подобный формат?⬇️
#архитектура
Сделал статью по индексам и партициям для роадмапа DE. Также хочу поделиться статьей с вами в более удобном виде.
Рассказал на пальцах, что такое индексы и партиции, а дальше немного углубил. Постарался раскрыть темы, которые спрашивают на собеседованиях.
Для написания статьи использовал личный опыт, другие статьи и LLM.
Дайте реакцию как вам материал и интересен ли вам подобный формат?
#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Индексы и партиции
Объяснение на пальцах: 1. Таблица без индексов и партиций (просто мешок) Давайте представим, что у нас есть мешок с кубиками, на которых номерки. Как выглядит:
🔥30❤8🙏4👍3✍1🫡1💅1
Forwarded from Инженерообязанный🫡 | Блог Дата Инженера
YouTube
UPDATE Курса(RoadMap, агрегатор информации) на Data Engineer. v_2_2
Настало время максимально актуализировать информацию в RoadMap. Каждый раз внося ключевые изменения будет выходить видео подобного формата.
Здесь вы узнаете, какие изменения вошли в версию 2.2 + и открытие интенсива.
Не забудь подписаться на каналы)) И…
Здесь вы узнаете, какие изменения вошли в версию 2.2 + и открытие интенсива.
Не забудь подписаться на каналы)) И…
В этом видео о RoadMap'e:
Плюс ко всему:
Мы совместно с Женей Виндюковым(Я - Дата Инженер), запускаем собственный BootCamp(Интенсив) по профессии Инженер данных. Об этом я тоже рассказывают в данном видео, поэтому все кто уже изучил Python и SQL и не знает, что делать дальше, милости просим в
Если у тебя есть идеи, предложения, обратная связь и т.д., можешь написать, как в комментариях под этим постом
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤19🔥10👍5😁2💅2
Новый формат. Буду писать короткие мысли/советы - возможно, провокационные. Хэштег #МыслиВслух.
Вы тоже можете писать личку канала или мне @it_pengwin - предлагайте свои мысли. Интересное буду постить.
И вообще: задавайте любые вопросы - про работу, технологии, задачки, собесы и околоайтишное. Будем разгонять это вместе.
Вы тоже можете писать личку канала или мне @it_pengwin - предлагайте свои мысли. Интересное буду постить.
И вообще: задавайте любые вопросы - про работу, технологии, задачки, собесы и околоайтишное. Будем разгонять это вместе.
👍5❤4😁2🔥1🫡1💅1
Для быстрого продвижения по карьерной лестнице:
навык в прохождении собесов > реальных скиллов на работе
#МыслиВслух
навык в прохождении собесов > реальных скиллов на работе
#МыслиВслух
Испытательный срок пройден ✅
3 месяца прошло, меня не уволили.
Честно говоря, я особо и не переживал. Если б уволили - нашел бы новое место. Но сейчас все равно чувствую облегчение.
Кстати, никто мне не сказал, что я прошел ИС. Недавно я изучал свой договор, и там написано, что если по истечению 3 месяцев меня не уволили, значит, я прошел испытательный срок. А меня не уволили 😁
От работы в этом банке я не в восторге. Внутренние процессы сильно бюрократизированы (об этом честно предупредили), есть следящее ПО (не предупреждали, за это жирный минус), задачи пока что не очень интересные, но зато уже чувствую свою ценность. Надеюсь дальше будет поинтереснее.
"Мы семья" - здесь такого нет, коллектив не очень общительный, каждый тихо делает свои задачи и на другие темы общения особо нет. Все как-то слишком серьезно. Это интересный опыт. Платят как и обещали - хорошо.
Из этого банка уходить пока что я не планирую. Год точно буду работать, а дальше посмотрим.
Сейчас узнаю информацию по поводу устройства на вторую работу через ИП. Решений никаких нет, просто узнаю как это все оформляется и анализирую смогу ли я совмещать две работы.
Еще получилось взять авансом отпуск. Спасибо за это руководству, что пошли навстречу.
В пятницу лечу в Турцию. Хочу забыться и не думать о работе.
3 месяца прошло, меня не уволили.
Честно говоря, я особо и не переживал. Если б уволили - нашел бы новое место. Но сейчас все равно чувствую облегчение.
Кстати, никто мне не сказал, что я прошел ИС. Недавно я изучал свой договор, и там написано, что если по истечению 3 месяцев меня не уволили, значит, я прошел испытательный срок. А меня не уволили 😁
От работы в этом банке я не в восторге. Внутренние процессы сильно бюрократизированы (об этом честно предупредили), есть следящее ПО (не предупреждали, за это жирный минус), задачи пока что не очень интересные, но зато уже чувствую свою ценность. Надеюсь дальше будет поинтереснее.
"Мы семья" - здесь такого нет, коллектив не очень общительный, каждый тихо делает свои задачи и на другие темы общения особо нет. Все как-то слишком серьезно. Это интересный опыт. Платят как и обещали - хорошо.
Из этого банка уходить пока что я не планирую. Год точно буду работать, а дальше посмотрим.
Сейчас узнаю информацию по поводу устройства на вторую работу через ИП. Решений никаких нет, просто узнаю как это все оформляется и анализирую смогу ли я совмещать две работы.
Еще получилось взять авансом отпуск. Спасибо за это руководству, что пошли навстречу.
В пятницу лечу в Турцию. Хочу забыться и не думать о работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🍾8❤3👍3 1
Оптимизация SQL запросов
Общие правила:
1️⃣ База базовая - минимизация использования DISTINCT, ORDER BY, UNION. Если нет необходимости использовать данные конструкции - не используем! Будет выполняться сортировка, а на больших данных это оочень ресурсозатратно!
2️⃣ Звездочка в select - зло. Выбираем только необходимые поля!
Неправильно:
Правильно:
3️⃣ Уметь смотреть план запроса и иметь понятие об основных способах соединения таблиц
4️⃣ Если разработка идет на синтетике или на не полном объеме, всегда запрашивать боевые цифры и исходя из этого принимать решение о датафиксах, группировках, джойнах. Если же код новый и сущности еще только формируются, то предполагаемые объемы надо запрашивать у аналитика – хотя бы порядок строк – сотни тысяч/миллионы/сотни млн
5️⃣ Не писать одно тело селекта с парой-тройкой десятков таблиц. Логические куски помещать в with – так проще управлять.
6️⃣ Не бояться бить большие запросы на 2-3 сессии:
➖ Не должно быть, например, 80 джойнов, из которых половина это миллионы строк. Попробовать как-то логически поделить например на 2 куска, и чтобы не использовать разные with из первой части во второй.
➖ Очень большой код, например, 3тысячи строк читать, сопровождать, понимать что случилось довольно затруднительно – есть смысл разбивать на логические части.
7️⃣ Понимать, когда и для чего использовать хинты. Помнить, что хинты – это костыли. Не лепить в каждой строчке все что возможно.
8️⃣ Если запрос падает на нехватке темпа, то
➖ замножение записей (неправильное условие соединения ON или связь один ко многим, либо многие ко многим)
➖ кривой план/неправильная последовательность соединения множеств
➖ отправка на параллельные исполнители в широковещательном режиме (broadcast) огромных объёмов данных. Можно поправить хинтом
➖ Для тестовой среды: проверить объём темп, если число файлов не совпадает/сильно меньше, чем на бою – сделать сравнимым, если возможно .
9️⃣ Никогда не использовать в условиях соединения ON вложенные селекты
1️⃣ 0️⃣ Никогда не использовать в списке полей select-a, определяемых с помощью функций, вложенные селекты.
Иными словами не должно быть конструкций вида:
В списке полей должны быть только поля и всевозможные необходимые функции, а селект нужно приджоинить к общей выборке.
Аналогично и для условий where – не должно быть вложенных селектов внутри функций - это приводит к возникновению ненужных циклов.
➖➖➖➖➖➖➖➖➖➖➖➖
Предлагайте свои правила и фишки по оптимизации.
Давно хотел сделать подобный посту💅
Жду реакции и репосты😊 ⬇️
it пингвин | data engineer🐧
#sql #оптимизация
Общие правила:
Неправильно:
SELECT * FROM SALES;
Правильно:
SELECT SALE_ID, SALE_DT FROM SALES;
Иными словами не должно быть конструкций вида:
select t.f1, t.f2,
case when select [] then … end f3
from table t
В списке полей должны быть только поля и всевозможные необходимые функции, а селект нужно приджоинить к общей выборке.
Аналогично и для условий where – не должно быть вложенных селектов внутри функций - это приводит к возникновению ненужных циклов.
➖➖➖➖➖➖➖➖➖➖➖➖
Предлагайте свои правила и фишки по оптимизации.
Давно хотел сделать подобный посту
Жду реакции и репосты
it пингвин | data engineer
#sql #оптимизация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤9👍4 3💅1
Я вернулся из отпуска 😎
Всего за одну неделю я испытал море эмоций - был супер чилл, восторг, экстрим, тусовочки. Я даже отвык от своего компухтера и вроде бы перезагрузился🎮
Отдыхайте и путешествуйте, друзья❤️
Это привносит много красок и удлиняет жизнь💯
Теперь врываюсь в рабочий график. Посты буду делать чаще, уже много всего скопилось в заметках🫡 ✏️
Всего за одну неделю я испытал море эмоций - был супер чилл, восторг, экстрим, тусовочки. Я даже отвык от своего компухтера и вроде бы перезагрузился
Отдыхайте и путешествуйте, друзья
Это привносит много красок и удлиняет жизнь
Теперь врываюсь в рабочий график. Посты буду делать чаще, уже много всего скопилось в заметках
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤6👍5🍾2 2😁1
В таблице t1 в поле id есть значения 1,2,3,4, null. Что вернется в результате запроса?
select * from t1 where id not in (1,2,null)
select * from t1 where id not in (1,2,null)
Anonymous Quiz
37%
3, 4
24%
ошибка
12%
ничего (0 строк)
1%
1 строка с null
1%
2 строки с null
25%
3, 4, null
🗿11👍9🔥5🤔3❤2🤩1 1
Часто замечаю, как айтишники делятся технической литературой на английском языке.
У меня вопрос: кто-нибудь из вас читает техническую литературу на английском?
Я понимаю, что айтишные книги на английском языке читать должно быть легче, чем художественные книги. Но мне это все равно сложно.
Итак, чтение ит книг не супер полезно в плане развития скиллов. Лучше прочитать статью, пройти курсики, сделать пет проект и порешать задачки.
Но читать еще и на английском - это х2 к затраченному времени и затрате энергии. Какая-то имитация полезной деятельности.
Есть такой термин:
Профанация - если под видом полезного дела скрывается пустая трата времени.
Ставим жабу в очках😎 - если читаешь английском
Ноготочки💅 - читаешь на русском
Пиво🍻 - не читаешь книги
#МыслиВслух
У меня вопрос: кто-нибудь из вас читает техническую литературу на английском?
Я понимаю, что айтишные книги на английском языке читать должно быть легче, чем художественные книги. Но мне это все равно сложно.
Итак, чтение ит книг не супер полезно в плане развития скиллов. Лучше прочитать статью, пройти курсики, сделать пет проект и порешать задачки.
Но читать еще и на английском - это х2 к затраченному времени и затрате энергии. Какая-то имитация полезной деятельности.
Есть такой термин:
Профанация - если под видом полезного дела скрывается пустая трата времени.
Ставим жабу в очках
Ноготочки
Пиво
#МыслиВслух
Please open Telegram to view this post
VIEW IN TELEGRAM