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

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

Можно использовать left join и в условие объединения таблиц добавить Attr.attr_code = 8.

select * from Users 
LEFT join Attr on Users.code = Attr.user_code and Attr.attr_code = 8
where Users.code = 24;

#tips
👍3
#вопрос65

Что выведет приведенный запрос, если в таблице Employee 10 записей?

BEGIN TRAN
TRUNCATE TABLE Employees
ROLLBACK
SELECT * FROM Employees


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

#вопросы #собеседование
👎9😁1
Ответ на #вопрос65

Этот запрос вернет 10 записей, т. к. TRUNCATE выполняется в транзакции.

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

Определите, какое число пропущено в следующей последовательности чисел: 1, 2, 2, 4, 8, 11, …, 37, 148.

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

#логика
💩5
Хотите перейти на новый уровень в C# разработке?

👉 Приглашаем 12 июля в 20:00 мск вас на открытый урок в OTUS.
Тема: Примитивы многопоточности .Net

На уроке разберем такие примитивы многопоточности, как

— Барьеры;
— Условные события (ManualResetEvent/AutoResetEvent);
— Потоко-безопасные очереди (блокируемые и неблокируемые)

Дополнительно обсудим:
— Как писать код без Thread.Sleep
— Где еще можно использовать многопоточность
— Чем отличается многопоточный код от асинхронного.

📌 Вебинар пройдет в рамках онлайн-курса «C# Developer. Professional» и позволит вам углубить свои знания о платформе .NET и научиться решать сложные задачи языка C#.

Не упустите шанс протестировать курс и стать еще более компетентным C# разработчиком. Больше полезных тем ждет вас на курсе, доступном в рассрочку.

👉 Для участия во встрече пройдите вступительный тест https://otus.pw/VX4p/

Нативная интеграция информация о продукте www.otus.ru
Решение сегодняшней задачи на логику и мышление.

Число 33. Решение: к первому числу прибавляем 1, второе число умножаем на 1, к третьему прибавляем 2, следующее умножаем на 2, затем прибавляем 3, следующее умножаем на 3 и т. д.

#логика
💩7😁2
Можно ли упростить приведенный запрос с UNION? Если да, то как?
SELECT id, prod_id, price FROM goods WHERE price <= 5 UNION SELECT id, prod_id, price FROM goods WHERE id IN (100,104)
Anonymous Quiz
22%
SELECT id, prod_id, price FROM goods WHERE price = 5 AND id IN (100,104)
4%
SELECT id, prod_id, price FROM goods WHERE price = 5 !AND id IN (100,104)
36%
SELECT id, prod_id, price FROM goods WHERE price = 5 OR id IN (100,104)
5%
Упростить нельзя
26%
Нет верного варианта ответа
8%
Посмотреть ответ
💩17👎10👍1
Как в SQL выбрать все записи из таблицы "Persons", где значение столбца "FirstName" равно "Peter"?
Anonymous Quiz
2%
SELECT [all] FROM Persons WHERE FirstName='Peter'
4%
SELECT [all] FROM Persons WHERE FirstName LIKE 'Peter'
1%
SELECT * FROM Persons WHERE FirstName<>'Peter'
92%
SELECT * FROM Persons WHERE FirstName='Peter'
1%
Посмотреть ответ
🤡16👍2🥰1
#вопрос66

Можно ли явным образом задать значение поля AUTO_INCREMENT?

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

#вопросы #собеседование
Ответ на #вопрос66

Да, можно. Например, так:

SET IDENTITY_INSERT TABLE1 ON

INSERT INTO TABLE1 (ID,NAME)
SELECT ID,NAME FROM TEMPTB1

SET IDENTITY_INSERT OFF

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

Коля и Петя, встретившись на улице, увидели написанное мелом на асфальте двузначное число. Петя прибавил к нему 4 и затем поделил на 7, а Коля поделил его на 9 и затем отнял 1. Результаты совпали. Какое число было написано?

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

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

Ребята шли навстречу друг другу. Петя увидел число 66, а Коля увидел число 99. Оба в результате вычислений получили 10.

#логика
👍1🥰1
Трюк дня. Как заменить NULL на значение предыдущего значения?

Делается следующий запрос:

SELECT *, 
CASE WHEN Sum_ IS NOT NULL THEN Sum_
ELSE COALESCE(Sum_, 0)
END AS first_Non_Null
FROM dbo.VIEW_1;
GO

Допустим, запрос возвращает:

Index_data | Sum_
_____________________
20.10.2015 | 8
21.10.2015 | 2
22.10.2015 | NULL
23.10.2015 | 5
24.10.2015 | NULL
25.10.2015 | NULL
26.10.2015 | 6

Желаемый результат:

Index_data | Sum_
_____________________
20.10.2015 | 8
21.10.2015 | 2
22.10.2015 | 2
23.10.2015 | 5
24.10.2015 | 5
25.10.2015 | 5
26.10.2015 | 6

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

#tips
Трюк дня. Как заменить NULL на значение предыдущего значения?

Используйте функцию LAG:

SELECT index_data, 
coalesce(Sum_, LAG(Sum_) OVER(ORDER BY index_data))
FROM dbo.VIEW_1;

#tips
⚠️ 3 из 5 компаний уже перешли с Oracle и MS SQL на PostgreSQL.

PostgreSQL хорошо выполняет сложные запросы и позволяет создавать высокодоступные отказоустойчивые и параллельные кластера под "тяжелые" задач

🦾 PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты.

Не пропустите открытый урок «Хранимые процедуры и функции в Postgresql», который состоится 18 июля в 20:00!

⬆️ На встрече вы узнаете, как использовать ненативные языки для написания хранимых процедур и функций в Postgresql на примере С и Python.

👉 Готовьте вопросы и записывайтесь на вебинар!
https://otus.pw/NEsL/

Нативная интеграция. Информация о продукте www.otus.ru
1😁1
#вопрос67

Как получить последний id без использования функции max?

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

#вопросы #собеседование
👍1🥰1👏1
Ответ на #вопрос67

В MySQL:

select id from table order by id desc limit 1

В SQL Server:

select top 1 id from table order by id desc

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

Средневековье, вы прислуживаете при королевском дворе. В один из дней король обвиняет вас в шпионаже и велит казнить. Но, предлагает выбрать способ смерти. Какой смерти попросить, чтобы выжить?

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

#логика
👍1🥰1