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
💩21👎1🤡1🌭1
Задача на мышление и логику.

Если одиннадцать плюс два равняются одному, чему равны девять плюс пять?

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

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

Речь идет о времени: 11 часов плюс 2 часа = 1 час, а 9 часов плюс 5 часов = 2 часа.

#логика
💩7👍4💊3🦄2
Трюк дня. Посчитать кол-во записей в таблице для каждого уникального значения столбца

Пусть есть таблица с транзакциями (клиент_отправитель, клиент_получатель, сумма, дата ,etc. ) таблица приведена для примера и не имеет отношения к реальной задаче.

Проблема - сделать вывод таблицы, где для каждого уникального клиент_отправитель будет стоять кол-во транзакций за определённую дату(период).

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

#tips
Трюк дня. Посчитать кол-во записей в таблице для каждого уникального значения столбца

select клиент_отправитель, count(*)
from таблица
where дата between начало and конец
group by клиент_отправитель

#tips
👍3
Даны 2 таблицы А и В, которые содержат поле row. А содержит 10 записей, В - 5 записей. Сколько записей вернет следующий запрос:

select A.row, B.row from A,B
Anonymous Quiz
12%
5
22%
10
54%
50
11%
Посмотреть ответы
👍5
#вопрос50

Назовите типы джойнов в SQL

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

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

INNER, JOIN LEFT, JOIN RIGHT, JOIN FULL, JOIN CROSS

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

Запишите восемь восьмерок таким образом, чтобы в сумме получилась тысяча.

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

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

888 + 88 + 8 + 8 + 8 = 1000

#логика
👍9
Трюк дня. Как сохранить порядок сущностей в списке?

Есть список сущностей "todo", нужно помимо того, что бы сохранить его в базе по id как то сохранить порядок, то есть если пользователь захотел задачу с id 20 выполнить вперед всех остальных, то она должна оказаться на самом верху, в не зависимости от того, какие у всех остальных задач id.

Как это сделать учитывая, что порядок одних и тех же задач в разных местах может быть разный, например в папке inbox один, а в папке today - уже другой порядок, хотя задачи одни и те же.

Как решить поставленную задачу?

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

#tips
💩5
Трюк дня. Как сохранить порядок сущностей в списке?

Используйте коллекцию TreeSet с помощью своего компаратора по приоритету или добавляйте в ту коллекцию, в которой Вы храните сейчас, с помощью компаратора по приоритету. Таким образом Вы добьетесь порядка в коллекции.

Если Вы используете ORM-системы, то они автоматически восстановят из базы данных коллекцию с правильным порядком.

#tips
💩2
#вопрос51

Как, используя CTE, найти пятый по величине оклад в таблице?

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

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

Declare @N int
set @N = 5;
WITH CTE AS
(
SELECT Name, Salary, EmpID, RN = ROW_NUMBER()
OVER (ORDER BY Salary DESC)
FROM Employee
)
SELECT Name, Salary, EmpID
FROM CTE
WHERE RN = @N

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

У вас есть две одинаковые по длине нити, и известно, что при зажигании одного конца любой из них горение будет длиться ровно один час. Как с помощью всего двух таких ниток и спичек отмерить 45 минут, не прикасаясь при этом руками к ниткам?

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

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

Зажгите оба конца первой нити и один конец второй. Когда полностью сгорит первая нить, это будет сигнализировать о прошествии 30 минут. Сразу же подпалите второй конец горящей нитки таким образом, чтобы огонь шел навстречу друг другу. В результате, когда она полностью сгорит, пройдет 45 минут.

#логика
👍3
Трюк дня. SQL Вернуть другую строку, если не найдена первая?

Как вернуть строку, если не найдена первая.

Например: SELECT * FROM TEST WHERE ID = '1' ИНАЧЕ SELECT * FROM TEST WHERE ID = '2'.

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

#tips
Трюк дня. SQL Вернуть другую строку, если не найдена первая?

Выберите обе, и отсортируйте в правильном порядке, взяв только первую строку.

SELECT * 
FROM test
WHERE id IN ('A','B')
ORDER BY CASE WHEN id = 'A' THEN 1 ELSE 2 END
LIMIT 1

подразумевая, что ID у вас не просто 1,2, т.к в этом случае можно просто order by id сделать

#tips
👍4
1
#вопрос52

Учитывая данные из таблицы A:

 x
------
2
-2
4
-4
-3
0
2

Напишите один запрос для вычисления суммы всех положительных и отрицательных значений x.

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

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