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
Статья дня. Использование хэш-ключей вместо строковых индексов

#sql

Читать статью
Трюк дня. Сравнение значений столбцов

Перепишите PostgreSQL запрос так, чтобы не использовать оператор AND.

WITH users (id, surname)
AS (VALUES
(1, 'Powers'),
(2, 'Sierra'),
(3, 'Oushen'))

SELECT id, surname
FROM users
WHERE id = 2 AND surname = 'Sierra';

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

#tips
Трюк дня. Сравнение значений столбцов. Решение

WITH users (id, surname)
AS (VALUES
(1, 'Powers'),
(2, 'Sierra'),
(3, 'Oushen'))

SELECT id, surname
FROM users
WHERE (id, surname) = (2,'Sierra');

#tips
C помощью какого запроса можно получить текущую структуру таблицы tbl?
Anonymous Quiz
21%
SELECT * FROM tbl
1%
DROP TABLE tbl
28%
SHOW TABLE STRUCTURE tbl
31%
DESCRIBE tbl
9%
Все варианты неверные
10%
Узнать ответ
👍3
#вопрос22

В чем разница между UNION и UNION ALL?

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

Оба UNION и UNION ALL объединяют результат двух разных SQL запросов.

Они отличаются тем, как они обрабатывают дубликаты:

UNION выполняет DISTINCT в результирующем наборе, исключая любые повторяющиеся строки.

UNION ALL не удаляет дубликаты, и поэтому он быстрее, чем UNION.

#вопросы #собеседование
Трюк дня. Максимальное значение без self-join

Напишите MySQL запрос, возвращающий максимальную salary для каждого t_id, не соединяя таблицу саму на себя.

t_id salary
1 2500
2 3000
1 1900


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

#tips
Трюк дня. Максимальное значение без self-join. Решение

SELECT *
FROM
(
SELECT
e.*,
CASE WHEN (salary = MAX (salary) OVER (PARTITION BY t_id)) THEN 'Y' ELSE 'N' END AS max_num_id
FROM
employee e
) DAT2
WHERE max_num_id = 'Y';


#tips
#вопрос23

Напишите SQL запрос для создания пустой таблицы из существующей.

То есть структура таблицы должна быть такая же как и у существующей, но в новой таблице не должно быть ни одной записи.

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

CREATE TABLE new_table AS (
SELECT * 
FROM old_table
WHERE 1=2
); 


#вопросы #собеседование
Статья дня. Эс-Кью-Эль или Сиквел: как произносится SQL?

#sql

Читать статью
Трюк дня. Поменять местами соседние записи

В таблице seat хранятся имена учеников и сведениях об их местах в классе.

Напишите MySQL запрос, который поменяет местами соседних учеников.

Если количество учеников нечётное — последнего ученика никуда пересаживать не надо.

Исходная таблица:
id student
1 Abbot
2 Doris
3 Emerson
4 Green
5 Jeames

Что должно получиться:
id student
1 Doris
2 Abbot
3 Green
4 Emerson
5 Jeames

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

#tips
👍1
Трюк дня. Поменять местами соседние записи. Решение

SELECT 
CASE
WHEN ((SELECT MAX(id) FROM seat)%2 = 1) AND id = (SELECT MAX(id) FROM seat) THEN id
WHEN id%2 = 1 THEN id + 1
ELSE id - 1
END AS id, student
FROM seat
ORDER BY id;

#tips
#вопрос24

Какие параметры используются в конструкции ORDER BY?

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

Каждой букве соответствует цифра от 0 до 9. Известно, что D=5. Вычислите все остальные цифры.

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

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

Ответ:
D = 5
O = 2
N = 6
A = 4
L = 8
G = 1
R = 7
B = 3
E = 9
T = 0

Задача решается простыми математическими расчётами и подбором.

Подробный разбор решения смотрите здесь

#логика