sql_tg | Unsorted

Telegram-канал sql_tg - SQL и БД Learning

9524

№ 5060218708 Изучаем SQL с нуля По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning

Subscribe to a channel

SQL и БД Learning

Лучший канал по Frontend

Читать полностью…

SQL и БД Learning

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

❓Вывести 30 комментариев начиная с 5 комментария из таблицы replies, кроме комментариев автора 'Вася'. Данные сортируются по дате добавления комментария в убывающем порядке

Ответ на картинке.

Читать полностью…

SQL и БД Learning

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

❓При выборке из таблицы workers создайте новое поле res, в котором будет строка 'eee'.

Ответ на картинке.

Читать полностью…

SQL и БД Learning

Девять способов выстрелить себе в ногу с PostgreSQL

Читать статью

Читать полностью…

SQL и БД Learning

Python

Читать полностью…

SQL и БД Learning

Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных

Смотреть статью

Читать полностью…

SQL и БД Learning

Как ускорить работу PostgreSQL с помощью конфигурации базы и оптимизации запросов

Смотреть статью

Читать полностью…

SQL и БД Learning

Обучающий канал по Java
@Java

Читать полностью…

SQL и БД Learning

Руководство по наиболее востребованным базовым командам SQL

Смотреть статью

Читать полностью…

SQL и БД Learning

Функция LOG() в SQL Server

Функция LOG() в SQL Server принимает один аргумент - число, для которого необходимо вычислить натуральный логарифм.

Например, если мы хотим вычислить натуральный логарифм числа 10, мы можем использовать следующий SQL-запрос:
SELECT LOG(10) AS NaturalLogarithm;

Результатом этого запроса будет число, представляющее натуральный логарифм числа 10. Функция LOG() также может быть использована в сочетании с другими функциями и операторами для выполнения более сложных вычислений.

Читать полностью…

SQL и БД Learning

🖥 Предположим, что нам необходимо получить данные о сотруднике, имеющем вторую по величине зарплату в компании. Мы можем использовать следующий запрос:

WITH employee_ranking AS (
SELECT
employee_id,
last_name,
first_name,
salary,
RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
)
SELECT
employee_id,
last_name,
first_name,
salary
FROM employee_ranking
WHERE ranking = 2

Условие WHERE ranking = 2 используется для фильтрации строк второй по величине зарплаты. Обратите внимание, что на позиции 2 может находиться более одного сотрудника, если у них одинаковая зарплата.

Читать полностью…

SQL и БД Learning

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

❓Какие ограничения на целостность данных существуют в SQL?

PRIMARY KEY - набор полей (1 или более), значения которых образуют уникальную комбинацию и используются для однозначной идентификации записи в таблице. Для таблицы может быть создано только одно такое ограничение. Данное ограничение используется для обеспечения целостности сущности, которая описана таблицей.

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

UNIQUE обеспечивает отсутствие дубликатов в столбце или наборе столбцов.

FOREIGN KEY защищает от действий, которые могут нарушить связи между таблицами. FOREIGN KEY в одной таблице указывает на PRIMARY KEY в другой. Поэтому данное ограничение нацелено на то, чтобы не было записей FOREIGN KEY, которым не отвечают записи PRIMARY KEY.

Читать полностью…

SQL и БД Learning

Как хранить сеть дорог в БД для построения маршрута?

Смотреть статью

Читать полностью…

SQL и БД Learning

🖥 Предположим, что нам необходимо получить данные о сотруднике, имеющем вторую по величине зарплату в компании. Мы можем использовать следующий запрос:

WITH employee_ranking AS (
SELECT
employee_id,
last_name,
first_name,
salary,
RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
)
SELECT
employee_id,
last_name,
first_name,
salary
FROM employee_ranking
WHERE ranking = 2

Условие WHERE ranking = 2 используется для фильтрации строк второй по величине зарплаты. Обратите внимание, что на позиции 2 может находиться более одного сотрудника, если у них одинаковая зарплата.

Читать полностью…

SQL и БД Learning

PostgreSQL 17: архитектура и тюнинг SQL-запросов

Погрузись в архитектуру и прокачай оптимизацию запросов одной из самых популярных open source СУБД – PostgreSQL.

🌐 В программе курса:

🤩 Разберем, как работают СУБД вообще и PostgreSQL в частности: что такое MVCC, ACID, WAL, LRU, PPC/TPC и другие фундаментальные понятия архитектуры баз данных
🤩 Получите свой собственный выделенный облачный PostgreSQL-сервер (8 vCPU, 12G RAM, 100G NVMe) – БЕСПЛАТНО на время обучения предоставляется
🤩 Получите теорию и практику EXPLAIN и EXPLAIN ANALYZE на разных типа запросов
🤩 Изучите архитектуру хранения данных в PostgreSQL, типы и особенности индексов, а также получите полезные советы и трюки оптимизации БД

🗓 Старт курса: 6 марта. Продолжительность: 5 недель обучения (четверг, 18:00 МСК).

Изучить программу и записаться можно здесь.

🤩Кто мы: R&D-центр Devhands, основатель школы Алексей Рыбак.
Автор курса — Николай Ихалайнен, эксперт по СУБД (ex-Percona), со-основатель MyDB, энтузиаст открытого ПО.

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqvSHeZb

Читать полностью…

SQL и БД Learning

В чем разница между функциями RANK() и DENSE_RANK()?

Единственная разница между функциями RANK() и DENSE_RANK() заключается в случаях, когда несколько значений в наборе имеют одинаковый ранг.

В таких случаях RANK() будет назначать непоследовательные «ранги» значениям в наборе.

Тогда как DENSE_RANK() будет назначать последовательные ранги значениям в наборе.

Например, рассмотрим набор
{25, 25, 50, 75, 75, 100}.

Для такого набора RANK() вернет
{1, 1, 3, 4, 4, 6} (обратите внимание, что значения 2 и 5 пропущены), тогда как DENSE_RANK() вернет
{1, 1, 2, 3, 3, 4}.

Читать полностью…

SQL и БД Learning

Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.

Читать полностью…

SQL и БД Learning

Задача повышенной сложности

В базе данных есть таблица "orders" с полями "id" (уникальный идентификатор заказа), "customer_id" (уникальный идентификатор клиента, который сделал заказ), "total_price" (общая стоимость заказа) и "created_at" (дата создания заказа). Необходимо найти все заказы, сделанные клиентом, сумма которых превышает среднюю сумму заказов всех клиентов. Результат должен быть отсортирован по дате создания заказа в порядке убывания.

Решение:
SELECT orders.id, orders.total_price, orders.created_at
FROM orders
WHERE orders.customer_id IN (
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING AVG(total_price) < (
SELECT AVG(total_price)
FROM orders
)
)
ORDER BY orders.created_at DESC;

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования
Что такое определяемая пользователем функция?

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

Читать полностью…

SQL и БД Learning

#Вопросы_с_собеседования
Поддерживает ли PostgreSQL полнотекстовый поиск?

Полнотекстовый поиск - это метод поиска одного документа или коллекции документов, хранящихся на компьютере, в полнотекстовой базе данных. В основном он поддерживается в продвинутых системах баз данных, таких как SOLR или ElasticSearch. Тем не менее, эта функция присутствует, но довольно проста в PostgreSQL.

Читать полностью…

SQL и БД Learning

Лучший канал по Python: Senior Python Developer

Читать полностью…

SQL и БД Learning

Рекомендации по ведению SQL-кода

В этом материале разберем общие рекомендации по ведению SQL-кода на примере СУБД MS SQL (T-SQL).

Смотреть статью

Читать полностью…

SQL и БД Learning

6 SQL-запросов, о которых должен знать каждый дата-инженер

Смотреть статью

Читать полностью…

SQL и БД Learning

🤖 ИИ и iGaming — в чем связь?

AI трансформирует индустрию, и знание его возможностей — ключ к успеху.

➡️ Поэтому тебе нужно подписаться на Owner 1win!

На канале ты найдешь:

⏺Анализ трендов — как AI меняет правила игры в индустрии азартных игр;

⏺Инсайты от экспертов — мнения лидеров рынка о будущем iGaming с использованием ИИ;

⏺Новые подходы к монетизации и привлечению игроков.

😍 Присоединяйся к Owner 1win и будь первым!

Читать полностью…

SQL и БД Learning

📢SQL Translator - это инструмент для преобразования запросов на естественном языке в SQL-запросы с помощью искусственного интеллекта. Этот проект является 100% бесплатным и с открытым исходным кодом.

git clone https://github.com/whoiskatrin/sql-translator.git

Github
Проект

Читать полностью…

SQL и БД Learning

Потенциальные проблемы с автоинкрементным ключом. MySQL <8.0, PostgreSQL

Смотреть статью

Читать полностью…

SQL и БД Learning

NOT NULL в CREATE TABLE

Следующий SQL гарантирует, что столбцы "ID", "LastName", и "FirstName" не будут принимать нулевые значения при создании таблицы "Persons".

Читать полностью…

SQL и БД Learning

Простой и эффективный метод удаления дубликатов из таблицы

Предположим, у нас есть простая таблица с двумя столбцами: id – это первичный ключ и v простое целочисленное значение

Приведенный код создает таблицу и вставляет несколько значений. Выведем на экран все строки из нашей тестовой таблицы. Как видите, id имеет уникальные значения, но поле val имеет содержит дубликаты (фото 1).

Наша задача состоит в том, чтобы удалить строки с поввторяющимися значениями в столбце val и сохранить уникальные значения с минимальным значением идентификатора id.

Для начала попробуем найти дубликаты. Мы можем использовать простое LEFT JOIN таблицы самой с собой по полю val с дополнительным условием для предотвращения объединения идентичных строк (для наглядности дадим алиасы для таблицы и копии) (фото 2).

В конечном итоге видно, что уникальные строки с минимальным id имеют (null) в столбцах из copy_tbl. Это происходит потому что для минимального значения id в исходной таблице нет строк соответсвующих условию в таблице копии. Итак, нам нужно оставить строки в которых нет соответствия (уникальные) и удалить. Это можно осуществить следующим запросом (фото 2).

Читать полностью…

SQL и БД Learning

Делаем SQL-запросы чище

Периодически в коде запросов и "заточенных" под них индексов наблюдаю примерно подобные куски:


coalesce("Фамилия", '') || ' ' || coalesce("Имя", '') || ' ' || coalesce("Отчество", '')


Понятно, что тут хотели обезопасить себя от заполненности любого из полей NULL-значением, чтобы случайно вся строка не заNULL'илась.

Правда, тут возникают некоторые артефакты в виде "висящих пробелов" типа ' Иван Иванович' или 'Иванов Иван '.

Но ведь есть решение изящнее и проще - функция concat_ws:
concat_ws(' ', "Фамилия", "Имя", "Отчество")

Читать полностью…

SQL и БД Learning

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

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

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

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

Читать полностью…
Subscribe to a channel