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
Трюк дня. Выборка записей из таблицы при различных условиях

Из MySQL таблицы customers выберите только тех, которые:

имеют тип = ‘Sal’ или ‘Adv’ И разница между датами mod и trans >=365 дней;
имеют тип = ‘Cus’ И разница между датами mod и trans >=14 дней.

Исходная таблица:
type mod trans
Cus 2022-01-01 2022-12-01
Sal 2022-08-01 2021-05-01
Adv 2022-05-01 2022-04-01
Cus 2022-05-01 2022-04-01

Ожидаемые результат:
type mod trans
Sal 2022-08-01 2021-05-01
Cus 2022-05-01 2022-04-01

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

#tips
👍1
Трюк дня. Выборка записей из таблицы при различных условиях. Решение

SELECT
DAT.*
FROM customer DAT
WHERE DATEDIFF(mod,trans)>=
CASE WHEN type IN('Sal', 'Adv') THEN 365
WHEN type IN('Cus') THEN 14
ELSE NULL END;

#tips
🔥1
#вопрос29

Из каких подмножеств состоит SQL?

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

DDL (Data Definition Language, язык описания данных) — позволяет выполнять различные операции с базой данных, такие как CREATE (создание), ALTER (изменение) и DROP (удаление объектов).

DML (Data Manipulation Language, язык управления данными) — позволяет получать доступ к данным и манипулировать ими, например, вставлять, обновлять, удалять и извлекать данные из базы данных.

DCL (Data Control Language, язык контролирования данных) — позволяет контролировать доступ к базе данных. Пример — GRANT (предоставить права), REVOKE (отозвать права).

#вопросы #собеседование
👍91👎1
Трюк дня. Изменить тип поля с CHARACTER на NUMERIC в PostgreSQL

В PostgreSQL таблице customers колонка age имеет тип CHARACTER(20).

Напишите запрос, который приведёт данную колонку к типу NUMERIC (10,0).

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

#tips
👍4
Трюк дня. Изменить тип поля с CHARACTER на NUMERIC в PostgreSQL. Решение

ALTER TABLE customers
ALTER COLUMN age
TYPE NUMERIC (10,0)
USING age::NUMERIC;


ИЛИ

ALTER TABLE customers
ALTER COLUMN age
TYPE NUMERIC (10,0)
USING CAST(age AS NUMERIC);


#tips
👍14
С помощью какого PostgreSQL запроса можно выбрать значение ‘Beer‘ из JSON поля info:
{“customer”:”John”,”items”:{“product”:”Beer”,”qty”:6}}?
Anonymous Quiz
10%
SELECT info -> ‘product’;
20%
SELECT info -> ‘customer’ -> ‘items’ ->> ‘product’;
33%
SELECT info -> ‘items’ ->> ‘product’;
17%
Ничего из перечисленного
19%
Посмотреть ответы
👍3
#вопрос30

В таблице tbl в поле nmbr содержатся записи со следующими значениями:
1, 0, 0, 1, 1, 1, 1, 0, 0.

Напишите запрос, который добавит 2, если значение nmbr = 0 и добавит 3, если значение nmbr = 1.

#вопросы #собеседование
👍8🏆3
Ответ на #вопрос30

UPDATE tbl
SET nmbr =
CASE WHEN nmbr = 0
THEN nmbr + 2
ELSE nmbr + 3
END;


#вопросы #собеседование
👍23👎5
👍15🤔2
Трюк дня. Возвратить 0 для функции SUM если не найдено ни одного значения в MySQL

Перепишите запрос так, чтобы он возвратил 0, если для функции SUM не найдено ни одного значения, кроме NULLs.

И возвратил сумму, если значения найдены.

SELECT SUM (column_1)
FROM table
WHERE column_2 = ‘Test‘;


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

#tips
👍8
Трюк дня. Возвратить 0 для функции SUM если не найдено ни одного значения в MySQL. Решение

SELECT COALESCE(SUM(column_1),0)
FROM table
WHERE column_2 = ‘Test‘;


#tips
👍13🤯4👎2
С помощью какой конструкции можно проанализировать использование индекса?
Anonymous Quiz
24%
INDEX USAGE
29%
EXPLAIN
19%
SHOW INDEXES
11%
TEST INDEX
16%
Узнать ответ
👍4😁4
#вопрос31

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

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

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

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

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

#вопросы #собеседование
👍20👏4
Статья дня. Основы мониторинга PostgreSQL

#sql

Читать статью
👍1
Трюк дня. Подсчет уникальных id с учетом NULLs в PostgreSQL

Есть таблица t1 со следующими данными:
id
1
2
NULL
NULL
3

Напишите PostgreSQL запрос, который подсчитает количество уникальных id.
При этом записи с NULL должны считаться как одна запись. Ожидаемый ответ: 4.

А также количество уникальных id без учета NULLs. Ожидаемый ответ: 3.

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

#tips
👍1
Трюк дня. Подсчет уникальных id с учетом NULLs в PostgreSQL. Решение

WITH new_table AS (
SELECT id FROM t1
UNION
SELECT NULL
)
SELECT
COUNT(*),
COUNT(DISTINCT id)
FROM new_table;

#tips
👎4🍌4👍2
С помощью какого ключевого слова можно соединить строки из нескольких таблиц, основываясь на их связи?
Anonymous Quiz
4%
IMPLODE
83%
JOIN
4%
WHERE
4%
Все варианты неверные
5%
Узнать ответ
👍11👎5🌚21