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
Трюк дня. 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
#вопрос54

Что выведет приведенный запрос, если в таблице Employee 10 записей?

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

#вопросы #собеседование
🤷‍♂6💩51
Ответ на #вопрос54

BEGIN TRAN
TRUNCATE TABLE Employees
ROLLBACK
SELECT * FROM Employees

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

6636 — 3, 8118 — 4, 2242 — 0, 3316 — ?

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

#логика