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 #187 · Back to latest

Older Posts 20 shown
Post #186 3.98K
Трюк дня. Ранг без RANK(). Решение.

Соединим таблицу саму на себя, сравнивая score.
Подсчитаем все уникальные значения объединённых score. Это и даёт эквивалент DENSE_RANK().


SELECT s1.score, count(DISTINCT s2.score) AS score_rank
FROM scores s1
JOIN scores s2
ON s1.score <= s2.score
GROUP BY s1.id, s1.score
ORDER BY 1 DESC

#tips
Post #185 3.94K
Трюк дня. Ранг без RANK()

Напишите SQL-запрос, который будет ранжировать scores из таблицы scores без использования оконной функции. Одинаковые scores должны иметь одинаковый ранг. Ранг, следующий за одинаковыми scores, должен быть следущий целым числом (см. ожидаемый результат на картинке выше).

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

#tips
  • ⚡ 1
  • 👍 1
Post #183 3.95K
Tips & Tricks. Очистка raw data в SQL

В этой статье мы рассмотрим несколько примеров, как очистить реальные данные так, чтобы можно было их использовать для дальнейшей работы с ними.

#sql

Читать статью
  • 👍 2
Post #182 4.26K
Ответ на #вопрос10

Да, отработает. В SQL допускается перечисление не всех полей в разделе SELECT, если мы группируем по нескольким полям.

В данном примере группировка выполняется по двум полям, а выводится на экран одно поле. А вот наоборот сделать уже нельзя.

#вопросы #собеседование
Post #181 4.11K
#вопрос10

Отработает ли данный запрос или выдаст ошибку:

SELECT field1 FROM table GROUP BY field1, field2;

#вопросы #собеседование
Post #176 3.7K
Решение сегодняшней задачи на логику.

1. Включить свет в начальном вагоне, в котором вы находитесь, если он ещё не горит.

2. Затем идти в одну любую сторону до тех пор, пока не встретите вагон с работающим освещением, при этом обязательно считать пройденные вагоны.

3. Выключить в найденном вагоне свет и идти обратно к начальному. Если в нём свет всё ещё горит, то повторить операцию. Если же нет, значит вы прошли полный круг и знаете ответ.

#логика
Post #175 3.79K
Задача на логику.

Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество. В каждом вагоне можно включать или выключать свет, но начальное положение переключателей случайное и заранее неизвестно.

Все вагоны внутри выглядят строго одинаково, окна закрыты так, что невозможно посмотреть наружу, движение поезда равномерное. Помечать вагоны как-либо, кроме включения или выключения света, нельзя. Количество вагонов конечно.

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

#логика
  • 👍 1
Post #173 3.9K
Tips & Tricks. 9 best practices написания SQL запросов

В этой статье мы рассмотрим best practices при написании SQL, позволяющие улучшить читабельность и производительность запросов.

#sql

Читать статью
Post #172 3.71K
Ответ на #вопрос9

NOW() возвращает время, когда начал исполняться оператор.

Основное различие между NOW() и CURRENT_DATE() заключается в том, что NOW() получает текущую дату и время в формате 'YYYY-MM-DD HH:MM:SS', а CURRENT_DATE() получает дату текущего дня 'YYYY-MM-DD'.

#вопросы #собеседование
Post #171 3.77K
#вопрос9

В чем разница между функциями NOW() и CURRENT_DATE() в PostgreSQL/MySQL?

#вопросы #собеседование
Post #167 3.63K
  • 👍 1
Post #166 3.83K
Трюк дня. Найти второе место по зарплате. Решение.

Решение 1: использование IFNULL и OFFSET

• IFNULL(expression, alt): эта функция возвращает аргумент expression в случае, если он не равен null. В противном случае возвращается аргумент alt. Мы используем эту функцию чтобы возвратить null, если в таблице не окажется искомого значения.
• OFFSET: этот оператор используется с ORDER BY для того чтобы отбросить первые n строк. Используется для получения второго по величине значения.

SELECT
IFNULL(
(SELECT DISTINCT salary
FROM employee
ORDER BY salary DESC
LIMIT 1
OFFSET 1
), null) AS sec_salary
FROM employee
LIMIT 1


Решение 2: использование MAX

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

SELECT
MAX(salary) AS sec_salary
FROM Employee
WHERE salary != (SELECT MAX(salary) FROM employee)


#tips
  • 👍 1
Post #164 3.66K
Трюк дня. Найти второе место по зарплате

Напишите SQL-запрос для получения из таблицы (employee) с зарплатами записи, содержащие вторую по размеру заработную плату.

Например, для таблицы на картинке выше такой запрос должен вернуть 200. Если в таблице нет значения, меньшего, чем самая высокая зарплата — запрос должен вернуть null.

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

#tips
Post #162 4K
Tips & Tricks. Функции vs Хранимые процедуры в SQL Server

В этой статье мы рассмотрим разницу между функциями и хранимыми процедурами в SQL Server на простых примерах.

#sql

Читать статью
Post #161 4.18K
Ответ на #вопрос8

Типы данных CHAR и VARCHAR очень схожи между собой, но различаются по способам их хранения и извлечения.

В столбце типа CHAR длина поля постоянна и задается при создании таблицы. Эта длина может принимать любое значение между 1 и 255.

Величины типа CHAR при хранении дополняются справа пробелами до заданной длины. Эти концевые пробелы удаляются при извлечении хранимых величин.

Величины в столбцах VARCHAR представляют собой строки переменной длины. Так же как и для столбцов CHAR, можно задать столбец VARCHAR любой длины между 1 и 255.

Однако, в противоположность CHAR, при хранении величин типа VARCHAR используется только то количество символов, которое необходимо, плюс один байт для записи длины. Хранимые величины пробелами не дополняются, наоборот, концевые пробелы при хранении удаляются.

Различия можно увидеть на картинке выше.

#вопросы #собеседование
  • 👍 1
Post #159 3.9K
#вопрос8

В чем разница между типами данных VARCHAR и CHAR в SQL?

#вопросы #собеседование
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 →