TGViewer
Channel Public Channel
SQL Pro

SQL Pro

@sqlprofi

SQL Pro - всё об SQL
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Трюки SQL
3. Видео
4. Тесты
5. Задачи на логику
6. Юмор
Subscribers
4.91K
Photos
99
Videos
0
Links
77

Showing posts older than #246 · Back to latest

Older Posts 19 shown
Post #243 3.06K
Трюк дня. Номер строки в PostgreSQL. Решение

SELECT
id,
name,
ROW_NUMBER () OVER (ORDER BY id
DESC)
FROM products;

#tips
Post #242 3.03K
Трюк дня. Номер строки в PostgreSQL

Таблица products содержит следующие данные:
id name
42 Milk
22 Bread
28 Pen
…


Напишите запрос, возвращающий порядковый номер строки в порядке убывания id.

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

#tips
Post #241 3.83K
Post #240 3.29K
Ответ на #вопрос17

Для подсчета количества записей в таблице вы можете использовать следующие запросы:

SELECT * FROM table1;

SELECT COUNT(*) FROM table1;

SELECT rows FROM sysindexes WHERE id = OBJECT_ID(table1) AND indid < 2;


#вопросы #собеседование
Post #239 3.24K
#вопрос17

Перечислите способы получить количество записей в таблице?

#вопросы #собеседование
Post #236 3.28K
Трюк дня. Агрегирование записей в PostgreSQL. Решение

WITH projects (task_id, start_date, end_date)
AS (VALUES
(1, CAST('10-01-20' AS date), CAST('10-02-20' AS date)),
(2, CAST('10-02-20' AS date), CAST('10-03-20' AS date)),
(3, CAST('10-03-20' AS date), CAST('10-04-20' AS date)),
(4, CAST('10-13-20' AS date), CAST('10-14-20' AS date)),
(5, CAST('10-14-20' AS date), CAST('10-15-20' AS date)),
(6, CAST('10-28-20' AS date), CAST('10-29-20' AS date)),
(7, CAST('10-30-20' AS date), CAST('10-31-20' AS date))),

-- получим такие даты начала, которых не существует в колонке даты окончания (это 'настоящие' даты начала проекта)

t1 AS (
SELECT start_date
FROM projects
WHERE start_date NOT IN (SELECT end_date FROM projects) ),

-- получим такие даты окончания, которые не существуют в колонке дат начала (это 'настоящие' даты окончания проекта)
t2 AS (
SELECT end_date
FROM projects
WHERE end_date NOT IN (SELECT start_date FROM projects) ),

--отфильтруем допустимые пары начало-окончание (начало < окончание), затем найдем правильную дату окончания для каждой даты начала (минимальная дата окончания, поскольку нет пересекающихся проектов)

t3 AS (
SELECT
start_date,
MIN(end_date) AS end_date
FROM t1, t2
WHERE start_date < end_date
GROUP BY 1 )
SELECT
*,
end_date - start_date AS project_duration
FROM t3
ORDER BY 3, 1

#tips
Post #233 2.96K
Трюк дня. Агрегирование записей в PostgreSQL

Таблица projects содержит три столбца: task_id, start_date и end_date.

Разница между датой окончания (end_date) и датой начала (start_date) составляет 1 день для каждой строки таблицы. Если даты окончания задач последовательны, они являются частью одного проекта. Даты проектов не пересекаются.

Напишите запрос, возвращающий даты начала и окончания каждого проекта, а также количество дней, затраченных на его выполнение. Расположите их в порядке возрастания продолжительности проекта, а в случае равенства - по возрастанию даты начала.

Код создания view исходной таблицы projects здесь.

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

#tips
Post #232 3.05K
Решение сегодняшней задачи на логику.

Ответ: 7,9 + 9 + 13,1 = 30.

#логика
Post #231 3.15K
Задача на логику.

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

#логика
Post #230 3.45K
Ответ на #вопрос16

% — заменить ноль или более символов;
_ — заменить один символ.

Примеры:

SELECT * FROM user WHERE name LIKE '%test%';
Данный запрос позволяет найти данные всех пользователей, имена которых содержат в себе «test».

SELECT * FROM user WHERE name LIKE 't_est';
А в этом случае имена искомых пользователей начинаются на «t», после содержат какой-либо символ и «est» в конце.

#вопросы #собеседование
Post #229 3.28K
#вопрос16

Какими бывают подстановочные знаки?

#вопросы #собеседование
Post #226 4.69K
Post #224 3.49K
Ответ на #вопрос15

Важен.

Когда строится составной индекс, сначала индексируется первый столбец, а потом строятся индексы других столбцов, на основании главного (первого).

#вопросы #собеседование
Post #223 3.38K
#вопрос15

Важен ли в составном индексе порядок столбцов?

#вопросы #собеседование
Post #220 3.84K
Трюк дня. MySQL LIKE IN(). Решение

Используем функцию REGEXP:

SELECT * FROM user t
WHERE t.id REGEXP '114|23|868';


#tips
Post #219 3.66K
Трюк дня. MySQL LIKE IN()

Напишите запрос, который выберет из таблицы user все значения id, содержащие в себе 114, 23 и 868.

Запрос должен быть короче, чем следующий запрос:

SELECT * FROM user t
WHERE t.id LIKE '%1
14%'
OR t.id LIKE '%2
3%'
OR t.id LIKE '%868%';

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

#tips
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →