Статистические функции SQL.
Можно ли в SQL проводить статистический анализ? Можно.
Разберем несколько популярных и полезных функций.
Можно ли в SQL проводить статистический анализ? Можно.
Разберем несколько популярных и полезных функций.
corr ( Y column , X column ) - вычисляет коэффициент корреляцииregr_r2 ( Y column , X column ) - вычисляет квадрат коэффициента корреляцииstddev ( column ) - вычисляет стандартное отклонениеvariance ( column ) - вычисляет дисперсию👍4👏1
Друзья, привет!
Когда изучаешь SQL часто встает вопрос на чем бы потренироваться или например какой запрос оптимальнее? Есть конечно учебные базы данных, но иногда их объем недостаточен для того, чтобы оценить какой запрос более оптимален для решения с точки зрения производительности системы.
Покажу как создать таблицу и заполнить ее рандомными значениями в 5 000 000 строк.
Цель – создание таблицы events.
Внутри таблицы хотим видеть три поля:
Период дат выбираем с
Типы событий выбираем:
Пользуйтесь и экспериментируйте!
Когда изучаешь SQL часто встает вопрос на чем бы потренироваться или например какой запрос оптимальнее? Есть конечно учебные базы данных, но иногда их объем недостаточен для того, чтобы оценить какой запрос более оптимален для решения с точки зрения производительности системы.
Покажу как создать таблицу и заполнить ее рандомными значениями в 5 000 000 строк.
Цель – создание таблицы events.
Внутри таблицы хотим видеть три поля:
user_id – уникальный id клиента, event_date – дата события, event_type – тип события. Период дат выбираем с
'2018-01-01' по '2023-09-06'. Типы событий выбираем:
'покупка', 'регистрация', 'посещение', 'клик'.Пользуйтесь и экспериментируйте!
🔥4❤1👏1
Влияние индекса на фильтрацию в SQL при хорошей селективности.
Покажу на примере как в случае частой фильтрации по одному и тому же полю в SQL запросе существенное влияние на ускорение выполнения влияет создание индекса.
Конечно индекс может быть не всегда полезен, но в случае хорошей селективности значений, ускорение может стать пушкой.
Сейчас мы с вами в этом убедимся. Взгляните на скриншоты, где я проводил эксперимент. Думаю все станет однозначно понятно.
Покажу на примере как в случае частой фильтрации по одному и тому же полю в SQL запросе существенное влияние на ускорение выполнения влияет создание индекса.
Конечно индекс может быть не всегда полезен, но в случае хорошей селективности значений, ускорение может стать пушкой.
Сейчас мы с вами в этом убедимся. Взгляните на скриншоты, где я проводил эксперимент. Думаю все станет однозначно понятно.
👍4
Друзья, всем привет. Не вдаваясь в подробности что означает данный запрос какая на ваш взгляд версия более читабельнее и понятнее для вас?
Применение
Конструкция
Но многие не догадываются о всех ее способностях и местах применения в различных частях запроса. Вот например, как вы думаете можно ли создать категории конструкцией
Представим что нам необходимо создать три категории заказов по весу:
Ну что ж, посмотрим на это. Оказывается что можно.
CASE в различных частях SQL запроса.Конструкция
CASE это невероятно крутая штука, которая способна закрыть множество задач, связанных с выполнением условных операций. Но многие не догадываются о всех ее способностях и местах применения в различных частях запроса. Вот например, как вы думаете можно ли создать категории конструкцией
CASE в операторе SELECT и в этом же запросе отфильтровать по созданной категории?Представим что нам необходимо создать три категории заказов по весу:
'тяжелый', 'средний', 'легкий' и вывести в результате только 'тяжелый'. Ну что ж, посмотрим на это. Оказывается что можно.
❤5👀1
С днем программиста, друзья!
В России День программиста отмечается 13 сентября. Этот праздник был установлен в 2009 году по инициативе Ассоциации программистов России.
Число 13 выбрано в честь 256-го числа, которое является наибольшей степенью числа 2, меньшей 365 (количество дней в году).
256 также символизирует количество различных значений, которые можно представить с помощью 8-битного байта.
В России День программиста отмечается 13 сентября. Этот праздник был установлен в 2009 году по инициативе Ассоциации программистов России.
Число 13 выбрано в честь 256-го числа, которое является наибольшей степенью числа 2, меньшей 365 (количество дней в году).
256 также символизирует количество различных значений, которые можно представить с помощью 8-битного байта.
👍2🔥2👏2
INNER JOIN в SQL.
Представьте что у нас есть две таблицы table_1 с полем A и table_2 c полем В, и в каждом поле по три строки с значениями 1. Вопрос: Сколько строк с значением 1 получится в результате INNER JOIN?
Представьте что у нас есть две таблицы table_1 с полем A и table_2 c полем В, и в каждом поле по три строки с значениями 1. Вопрос: Сколько строк с значением 1 получится в результате INNER JOIN?
Anonymous Quiz
50%
3
19%
6
31%
9
0%
12
Оптимизация
Представьте что нам нужно найти все рекламные источники, начинающиеся на букву
На скриншотах вы можете увидеть что второй вариант работает шустрее.
LIKE в конкретной задаче SQL.Представьте что нам нужно найти все рекламные источники, начинающиеся на букву
'v'. Первое что придет в голову использовать оператор LIKE. SELECT *Запрос отработает как надо. Но конкретно в этом примере запрос можно было написать оптимальнее т.к.
FROM events e
WHERE ad_channel LIKE 'v%'
LIKE тяжеловат для СУБД. Посмотрим как можно было изменить запрос:SELECT *Здесь мы использовали функцию
FROM events e
WHERE LEFT (ad_channel, 1) = 'v'
LEFT, при помощи которой достали только первую букву источника и сравнили ее с 'v'.На скриншотах вы можете увидеть что второй вариант работает шустрее.
👍6
Что такое базы данных NoSQL и какие у них преимущества?
NoSQL (или "нереляционные базы данных") представляет собой подход к управлению данными, который отличается от традиционных реляционных баз данных, таких как PostgreSQL. В то время как реляционные базы данных используют таблицы, столбцы и связи для организации данных, NoSQL базы данных используют другие модели данных, такие как ключ-значение, документы, столбцы или графы.
NoSQL базы данных часто используются в приложениях, где требуется гибкая схема данных или быстрый доступ к большим объемам данных, таким как социальные сети, интернет-магазины, аналитические приложения и т.д.
В отличие от PostgreSQL, NoSQL базы данных обычно не поддерживают SQL-запросы и транзакции в том же виде. Тогда как осуществляется доступ к информации?
Например, в базах данных типа ключ-значение, данные доступны по ключу, в документ-ориентированных базах данных, данные хранятся в виде документов и доступ осуществляется через идентификаторы документов и их поля.
Кроме того, NoSQL базы данных обычно предлагают более гибкую схему данных, что означает, что поля и структура данных могут быть изменены без необходимости изменения схемы базы данных. В реляционных базах данных изменение схемы может быть сложным и требовать пересоздания таблиц, что может быть затруднительно при работе с постоянно меняющимися данными.
В целом, NoSQL базы данных предназначены для работы с разнородными, распределенными и масштабируемыми данными, обладают высокой производительностью и гибкостью, но требуют от разработчиков изменения подхода к моделированию данных и выполнению запросов.
NoSQL (или "нереляционные базы данных") представляет собой подход к управлению данными, который отличается от традиционных реляционных баз данных, таких как PostgreSQL. В то время как реляционные базы данных используют таблицы, столбцы и связи для организации данных, NoSQL базы данных используют другие модели данных, такие как ключ-значение, документы, столбцы или графы.
NoSQL базы данных часто используются в приложениях, где требуется гибкая схема данных или быстрый доступ к большим объемам данных, таким как социальные сети, интернет-магазины, аналитические приложения и т.д.
В отличие от PostgreSQL, NoSQL базы данных обычно не поддерживают SQL-запросы и транзакции в том же виде. Тогда как осуществляется доступ к информации?
Например, в базах данных типа ключ-значение, данные доступны по ключу, в документ-ориентированных базах данных, данные хранятся в виде документов и доступ осуществляется через идентификаторы документов и их поля.
Кроме того, NoSQL базы данных обычно предлагают более гибкую схему данных, что означает, что поля и структура данных могут быть изменены без необходимости изменения схемы базы данных. В реляционных базах данных изменение схемы может быть сложным и требовать пересоздания таблиц, что может быть затруднительно при работе с постоянно меняющимися данными.
В целом, NoSQL базы данных предназначены для работы с разнородными, распределенными и масштабируемыми данными, обладают высокой производительностью и гибкостью, но требуют от разработчиков изменения подхода к моделированию данных и выполнению запросов.
👍3