SQL Pro
5.07K subscribers
142 photos
2 videos
10 files
127 links
SQL Pro - всё об SQL
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Трюки SQL
3. Видео
4. Тесты
5. Задачи на логику
6. Юмор
Download Telegram
Ответ на #вопрос45

Оконная функция в SQL - функция, которая работает с выделенным набором строк (окном, партицией) и выполняет вычисление для этого набора строк в отдельном столбце.

При использовании агрегирующих функций предложение GROUP BY сокращает количество строк в запросе с помощью их группировки. При использовании оконных функций количество строк в запросе не уменьшается по сравнению с исходной таблицей.

#вопросы #собеседование
👍2
Задача на мышление и логику.

Повару древнего Египта необходимо варить яйцо в кипящей воде строго две минуты, но у него в наличии песочные часы только на три, четыре и пять минут. Как ему приготовить блюдо Фараону, не отклоняясь от времени, которое указано в рецепте?

Примечание: использовать часы можно на свое усмотрение: сразу все, только одни, по очереди или по несколько раз.

Решение будет вечером.

#логика
🤪3👍2🆒2😈1
Решение сегодняшней задачи на логику и мышление.

Когда вода закипит, повару нужно поставить двое часов: на три минуты и на пять. Когда песок в трехминутных часах закончится, сразу опускать яйцо, таким образом, оно будет вариться требуемое время.

#логика
👍9
Трюк дня. Query Builder как посчитать сколько раз записана одна и та же запись

У
нас есть кое-какие записи в БД:
{ "id": 2, "reason": "test","reportedUser": {id:123}}
{ "id": 3, "reason": "test","reportedUser": {id:123}}

Юзера можно зарепортить несколько раз и разные юзеры могут репортить одного юзера. Нужно получить запись в которой будет показано сколько раз был зарепорчен каждый юзер. Примерный вывод:
{ "id": 2, "reason": "test","reportedUser": {id:123} reportedCount:2}

Решение будет вечером.

#tips
👍3
Трюк дня. Query Builder как посчитать сколько раз записана одна и та же запись

select id, reason, reportedUser, count(*) reportedCount
from table
group by id, reason, reportedUser
order by 4 desc

#tips
🤡6👎2💩2🤪2👍1
#вопрос46

Какой оператор используется для изменения объектов базы данных?

Решение будет вечером.

#вопросы #собеседование
🤡2👍1
🤯3😱2🏆2🤪2🆒2👍1
Задача на мышление и логику.

Наполеон Бонапарт, Петр Первый, Юрий Гагарин, Шерлок Холмс, Вильям Шекспир, Нострадамус, Пифагор. Кто лишний в этом списке?

Решение будет вечером.

#логика
💩11🤡2🏆21
Решение сегодняшней задачи на логику и мышление.

Шерлок Холмс, поскольку это вымышленный персонаж, а остальные — реальные люди.

#логика
👏8👎1
👍2💩2😢1🏆1
#вопрос47

Что такое оконная функция? И в чем отличие от функции агрегации с группировкой?

Решение будет вечером.

#вопросы #собеседование
🤡7🏆2
Ответ на #вопрос47

Оконная функция в SQL - функция, которая работает с выделенным набором строк (окном, партицией) и выполняет вычисление для этого набора строк в отдельном столбце.

#вопросы #собеседование
👎3🏆1
Задача на мышление и логику.

У строителя есть 8 кирпичей, 7 из которых имеют одинаковый вес, а один — тяжелее. Как строителю выявить бракованный кирпич с помощью весов всего за два взвешивания?

Решение будет вечером.

#логика
😁1
Решение сегодняшней задачи на логику и мышление.

Все нужно делать поэтапно:

1. Разделить 8 кирпичей на три стопки по 3, 3 и 2 штуки.
2. Взвесить 2 стопки, в которых по 3 кирпича.
3. Если они уравновесились, значит взвесить стопку из двух кирпичей и найти бракованный.
4. Если не уравновесились, то взять 3 кирпича из стопки, которая перевесила и разделить на 3 штуки.
5. Положить по одному на весы. Если один перевесил — он бракованный, если уравновесились, значит, тяжелее всех тот, что остался в стороне.

#логика
👍11
Трюк дня. SQL - Удаление результата из полученного селекта в Postgresql

Есть таблица где есть поле типа character varying[]. В этом поле сохраняется номера телефонов в таком виде

[+012345678901","+123456789012","2347587E+11"]

Как найти в этой таблице "неправильные" номера телефонов такого вида - 2347587E+11 и удалить? И чтоб после удаления в массиве было типа так:

Массив до удаления [+012345678901","+123456789012","2347587E+11"]
Массив после удаления [+012345678901","+123456789012"]

Решение будет вечером.

#tips
💩4🤬1
Трюк дня. SQL - Удаление результата из полученного селекта в Postgresql

insert into phones 
with t as (select
ph.id,
unnest(ph.phones) as phone
FROM
phones ph )
select
id,
array_agg(phone) as phones
from
t
where phone like '%2%' // << место с фильтрацией "неверных" номеров
group by
id
on conflict(id) do update set phones = excluded.phones

#tips
#вопрос48

Какие из операторов SQL могут быть использованы для выполнения CRUD (Create, Read, Update, Delete) операций над данными?

Решение будет вечером.

#вопросы #собеседование
👍5
Ответ на #вопрос48

INSERT, DELETE, SELECT, UPDATE

#вопросы #собеседование
👨‍💻2
Задача на мышление и логику.

Парень спросил у девушки: «Сколько тебе лет?», на что она загадочно улыбнулась и ответила: «Позавчера мне было 22, а в следующем году будет 25».

Попробуйте догадаться, когда у девушки День рождения и какого числа происходил разговор между парой?

Решение будет вечером.

#логика
👍4
Решение сегодняшней задачи на логику и мышление.

Парень и девушка разговаривали 1 января, а День рождения был 31 декабря. Получается:

«позавчера» было 30 декабря и девушке было 22 года;

31-го числа ей исполнилось 23;

в День рождения, который будет в тот год, когда велся разговор, исполнится 24;

а на следующий год девушка отметит 25-летие.

#логика
👍13👏1