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

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

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

select sum(case when x>0 then x else 0 end)
sum_pos,sum(case when x<0 then x else 0 end)
sum_neg from a;

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

Если в 12 часов ночи пошел снег, можно ли предположить, что через 96 часов на улице будет солнце?

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

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

Такого быть не может так как 96 часов — это ровно четверо суток, а значит, через указанный промежуток времени снова будет 12 часов ночи.

#логика
👍1😁1
Трюк дня. SQL - Сортировка зеркальных строк

Есть БД со следующей структурой:
id team1      team2
1 spartak csk
2 csk spartak
3 real spartak
4 csk real

Нужно написать запрос что-бы узнать сколько раз команды играли между собой в виде:
game          num
spartak-csk 2
real-spartak 1
csk-real 1

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

#tips
💩2
Трюк дня. SQL - Сортировка зеркальных строк

SELECT game, count(game)
FROM (
select
case when a < b then concat(a, '-' , b)
else concat(b , '-', a ) end as game
from data
) as t
GROUP by game|

#tips
👍6👎1💩1
С помощью предиката IN можно извлечь данные, соответствующие заданным значениям, являющимся
Anonymous Quiz
3%
числовыми
4%
строковыми
16%
числовыми или строковыми
77%
любого типа, поддерживаемого в SQL
👍1
#вопрос53

Можно ли явным образом задать значение поля AUTO_INCREMENT?

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

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

Да, можно. Например, так:

SET IDENTITY_INSERT TABLE1 ON

INSERT INTO TABLE1 (ID,NAME)
SELECT ID,NAME FROM TEMPTB1

SET IDENTITY_INSERT OFF

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

Художник гулял по парку, когда на улице начался дождь. С собой у мужчины не оказалось шляпы и зонтика, а в кронах деревьев из-за сильного ливня укрыться не вышло. В результате вся одежда оказалась влажной, но ни один волос на голове художника не промок. При каких обстоятельствах такое могло произойти?

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

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

Это был лысый художник.

#логика
Трюк дня. Как в sql добавить к datetime 7 дней

Нужно выбрать все столбики в end_time и добавить к ним 7 дней. Примерный код:
select * from purchases where end_time > Cast('2022-*-*' as datetime)+7

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

#tips
💩5
Трюк дня. Как в sql добавить к datetime 7 дней

Если надо изменить значение поля end_time прибавив к нему 7 дней, то запрос должен выглядеть так:

update purchases set end_time = DATE_ADD(end_time, INTERVAL 7 DAY);

Если обновлять надо не все записи, то нужно добавить условие WHERE

#tips
👍21