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

Что такое план запросов? Когда бы вы его использовали? Как посмотреть план?

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

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

План запросов – это "карта", отображающая графически или в виде текста способы получения данных, последовательность операций, сортировки, группировки и т. д. Эти планы очень полезны разработчику для понимания и анализа характеристик производительности запроса или хранимой процедуры.

Во многих системах SQL план выполнения можно получить с помощью ключевого слова EXPLAIN. В Microsoft SQL Server Query Analyzer имеет в раскрывающемся меню параметр “Show Execution Plan”. Если его активировать, то при выполнении запроса план будет отображаться в отдельном окне.

#вопросы #собеседование
👍13🏆1
Трюк дня. Поиск симметричных записей в MySQL

Есть таблица items с колонками x и y, в которой есть симметричные записи. То есть такие, где x1 = y2 и x2 = y1.

Напишите запрос, который возвратит все симметричные записи в порядке возрастания x. Выберите только те записи, где x1<=y1.

К примеру в таблице есть такие данные:

x y
20 20
20 20
20 21
23 22
22 23
21 20
18 48
10 10

Ожидаемый результат:
20 20
20 21
22 23

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

#tips
🔥5👍2
Трюк дня. Поиск симметричных записей в MySQL. Решение

SELECT f1.x,f1.y
FROM

(SELECT x,y,ROW_NUMBER() OVER (ORDER BY x) AS id FROM items) f1
JOIN

(SELECT x,y,ROW_NUMBER() OVER (ORDER BY x) AS id FROM items) f2
ON f1.x=f2.y
AND f1.y=f2.x
AND (f1.id<f2.id)
ORDER BY f1.x;

#tips
👍22🍌2
#вопрос38

Как получить последний id без использования функции MAX?

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

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

В MySQL:
SELECT id
FROM table
ORDER BY id DESC
LIMIT 1

В SQL Server:
SELECT TOP 1 id
FROM table
ORDER BY id DESC


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

Как найти дубликат записи? Опишите процесс для дублирования записей с одним и несколькими полями.

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

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

Дублирование записей с одним полем:
SELECT name, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1

Дублирование записей с несколькими полями:
SELECT name, email, COUNT(*)
FROM users
GROUP BY name, email
HAVING COUNT(*) > 1

#вопросы #собеседование
👍11💩5🔥2🐳1
Какого строкового типа данных нет в SQL:
Anonymous Quiz
5%
VARCHAR
56%
STRING
8%
CHAR
27%
TEXT
4%
Посмотреть ответ
🔥4
Трюк дня. Количество повторений значения в столбце в SQL.

В SQL есть таблица students:

student_id INTEGER PRIMARY KEY,
student_name VARCHAR,
group_id INTEGER

В программе Java нужно получить Map<Integer, Integer>, где key -> group_id, а value -> кол-во студентов с этим group_id, то есть, кол-во повторений каждого group_id. Как составить для этого SQL запрос?

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

#tips
🔥5
Трюк дня. Количество повторений значения в столбце в SQL.

SELECT group_id, Count(student_id) FROM students WHERE group_id>0 GROUP BY students.group_id HAVING COUNT (student_id)<(?) ORDER BY students.group_id;

#tips
👍2👎1
Задача на мышление и логику.

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

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

Ответ: здесь представлены все цифры от 0 до 9

#логика
🤡18👎3🔥3👍2
Какое ключевое слово нельзя использовать вместе с оператором ROLLUP?
Anonymous Quiz
27%
LIMIT
11%
GROUP BY
12%
ORDER BY
20%
HAVING
30%
Посмотреть ответы
🥱4🔥2
Трюк дня. 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
🔥7👍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
👍15😱4
Задача на мышление и логику.

Сможете ли вы сделать это уравнение правильным, используя три из следующих четырех символов: +, −, x и ÷ ?

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

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

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

#логика
👎45🤡7👍41