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
#вопрос64

В чем разница между условиями WHERE и HAVING?

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

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

Если в запросе не используется GROUP BY, то условия WHERE и HAVING эквивалентны.

Но при использовании GROUP BY:

Условие HAVING используется для фильтрации значений из группы (т. е. для проверки условий после выполнения агрегации в группы).
Условие WHERE используется для фильтрации записей из результата до срабатывания какой-либо группировки.

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

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

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

Протестируйте обучение на открытых уроках:

❇️ Хранимые процедуры и функции в PostgreSQL, 4 июля в 20:00
Разберем основы разработки элементов серверной логики. SQL и Pl/Pgsql
➡️ https://otus.pw/cSVK/

❇️ Хранимые процедуры и функции в PostgreSQL — дополнительные возможности, 18 июля в 20:00
Рассмотрим использование ненативных языков для написания хранимых процедур и функций в PostgreSQL на примере С и Python
➡️ https://otus.pw/AABn/

Нативная интеграция. Информация о продукте www.otus.ru
👍2👎2
Задача на мышление и логику.

Напишите десятизначное число так, чтобы: первая цифра означала количество единиц в нем, вторая цифра означала количество двоек, третья цифра означала количество троек, и так далее до десятой цифры, которая означает количество нулей.

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

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

Получается число 2100010006.

#логика
Трюк дня. Как объединить 2 таблицы, чтобы условие по второй было не обязательное?

Таблица Attr:

code  user_code  attr_code  attr_value
1 24 8 1
2 24 4 1
3 24 3 1
4 24 2 1


Таблица Users:

code  name
24 Bolodya


Запрос:

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

выдаст искомую строку, только если в таблице Attr есть запись с attr_code = 8 и user_code = 24.

Напишите такой запрос, чтобы поля из таблицы Users выводились в любом случае, а поля из Attr только если есть запись с attr_code = 8(если таковой нет - на месте этих полей будет просто пустота).

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

#tips
👍3
Трюк дня. Как объединить 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