Data Science. SQL hub
35.8K subscribers
921 photos
49 videos
37 files
979 links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
🖥 BigQuery. Что делать, если повредил или случайно удалил таблицы

BigQuery становится все более популярным инструментом для работы с данными. С ростом его распространенности все более ценными становятся и знания о нем. При этом в повседневной практике могут возникать совершенно разные ситуаций, от которых невозможно перестраховаться на 100%. Можно в частности случайно повредить, неверно дозаполнить, а может быть и вовсе уничтожить не те партиции или целую таблицу. В этой заметке мы рассмотрим способы, с помощью которых можно исправить допущенные недоразумения.

➡️ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍31
🖥 Использование SET ANSI_NULLS в SQL

При обработке массивов данных, в процессе создания хранимых процедур, возникает необходимость сравнения нулевых значений. Многие разработчики путаются в обработке нулевых значений. Когда говорится о значении, равном NULL, то на самом деле имеется в виду, что оно не имеет никакого значения. Это сильно отличается от числа равного нулю, или строки, являющейся пустой (или нулевой длинны). Именно поэтому нет возможности сравнить значение с NULL используя базовые операторы сравнения IS NULL или IS NOT NULL. Значение NULL – это состояние, в котором находится переменная или столбец, а не значение, которое они содержат.

Решение данной задачи возможно осуществить с помощью встроенного функционала настройки драйвера ODBC и поставщика OLE DB клиента SQL Server, для этого воспользуюсь инструкцией SET ANSI_NULLS, которая позволяет настроить SQL Server для использования операторов сравнения со значениями NULL, установив параметры SET ANSI_NULLS ON или SET ANSI_NULLS OFF.

➡️ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
DBDiagram — бесплатный и простой инструмент для построения диаграмм связей для баз данных

С его помощью вы сможете напрямую генерировать операторы SQL, при этом делясь результатом с вашими коллегами

У приложения также есть достаточно тесная интеграция с веб-фреймворками, такими как Django, Rails и т.д

Стоимость: #бесплатно (но есть платная подписка)

#db #sql #базы_данных

@sqlhub
👍14🔥41
🖥 @github_code - лучшие проекты с Github теперь доступны в одном канале.

Проекты , которые реально помогут в разработке и помогут прокачать навыки программирования.

Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🔥1
Трюк дня. Количество вхождений строки в поле в MySQL

Есть таблица items со следующими данными:

id desc
1 val test test val
2 val test
3 test test test
4 valvalvalvalval

Напишите MySQL запрос, который подсчитает количество вхождений значения ‘val‘ для каждого desc.

Ожидаемый результат:
2
1
0
5


Решение:


SELECT
ROUND (
(LENGTH (desc) - LENGTH (
REPLACE (desc, ‘val‘,‘‘)
)) / LENGTH(‘val‘)) AS c
FROM items;


#tips

@sqlhub
👍131🔥1
🖥 Изучаем SQL. Генерация, выборка и обработка данных, 3-издание

Данная книга отличается широким охватом как тем (от азов SQL до таких сложных вопросов, как аналитические функции и работа с большими базами данных), так и конкретных баз данных (MySQL, OracleDatabase, SQL Server) и особенностей реализации тех или иных функциональных возможностей SQL на этих серверах.Книга идеально подходит в качестве учебника для начинающего разработчика в области баз данных. В ней описаны все возможные применения языка SQL и наиболее распространенные серверы баз данных.

➡️ Книга

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73👍3
🖥 SQL Сборник рецептов

Рассмотрены готовые рецепты для решения практических задач при работе с СУБД Oracle, DB2, SQL Server, MySQL и PostgreSQL. Описаны извлечение записей из таблиц, сортировка результатов запросов, принципы работы с несколькими таблицами, обработка запросов с метаданными. Рассказывается о способах поиска данных средствами SQL,о составлении отчетов и форматировании результирующих множеств, работе с иерархическими запросами. Рассматривается использование оконных функций, обобщенных табличных выражений (ОТВ), сбор данных в блоки, формирование гистограмм, текущих сумм и подсумм, агрегация скользящего диапазона значений. Описан обход строки и ее синтаксический разбор на символы, приведены способы упрощения вычислений внутри строки.
Во втором издании учтены все изменения в синтаксисе и архитектуре актуальных реализаций SQL.

➡️ Книга

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥32
🖥 Индексирование JSON в MySQL

В середине 2015 года, в MySQL 5.7.8 появился тип данных JSON. С тех пор он применяется, чтобы избегать жёстких определений столбцов и сохранять документы JSON всех форм и размеров: логи аудита, параметры конфигурации, сторонние полезные нагрузки, пользовательские поля и др.

Хотя в MySQL есть функции чтения и записи данных JSON, вы быстро обнаружите, что явно не хватает прямого индексирования столбцов с JSON.

В других базах данных в качестве способа прямого индексирования столбца JSON обычно применяется обобщённый обратный индекс, или GIN-индекс (Generalized INverted index). В MySQL GIN-индексов нет, поэтому индексировать весь сохранённый документ JSON напрямую нельзя, зато возможно косвенно индексировать части JSON.

В зависимости от версии MySQL есть два варианта. В MySQL 5.7 нужно создавать промежуточный сгенерированный столбец, но с версии MySQL 8.0.13 можно создавать функциональный индекс напрямую.

➡️ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2
Data Science. SQL hub
🖥 Индексирование JSON в MySQL В середине 2015 года, в MySQL 5.7.8 появился тип данных JSON. С тех пор он применяется, чтобы избегать жёстких определений столбцов и сохранять документы JSON всех форм и размеров: логи аудита, параметры конфигурации, сторонние…
🖥 Как устроена виртуальная машина SQLite

SQL – концептуально странный язык. Вы пишете ваше приложение на одном языке, скажем, на JavaScript, а затем направляете базе данных команды, написанные на совершенно другом языке – SQL. После этого база данных компилирует и оптимизирует эту команду на SQL, выполняет её и возвращает вам данные. Такой метод кажется ужасно неэффективным, но, всё-таки, ваше приложение может проделывать сотни таких операций в секунду. Просто безумие!

➡️ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
🖥 Новая схема SQL Join-ов

Учу SQL и понимаю, что схема Join-ов основанная на пересекающихся кругах не корректна. Результатом джойнов всегда идет увеличение таблицы в ширь. А по схеме с кругами площадь кругов почти везде не увеличивается. И также круговая схема не показывает заполнение NULL-ами при LEFT и RIGHT джойнах. Предлагаю схему на прямоугольниках, где закрашенный красный это результирующая таблица джойнов, черный это заполнение NULL-ами. Серые прямоугольники оставлены просто для наглядности и ничего не означают.

➡️ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍293🥰1🤔1
🖥 sirdbNoSQL, JSON-oriented база данных на JavaScript, представленна в виде json-файлов в файловой системе

Данная характеристика позволяет читать данные обычным пользователям

🖥 Github

@sqlhub | #Interesting #Database
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥1
🖥 Руководство по стилю SQL · SQL Style Guide

Вы можете использовать это руководство целиком, сделать его форк или создать своё на его основе. Цель — определить, какой стиль вам подходит больше, и придерживаться его. Если вы хотите предложить изменение или исправить ошибку, откройте Issue или создайте Pull Request на GitHub’е.

Рекомендации, описанные в этом руководстве, во многом пересекаются с описанными в книге Джо Селко «Стиль программирования Джо Селко на SQL» (оригинал: SQL Programming Style). Это, в частности, найдут полезным те, кто уже знаком с этой книгой. Тем не менее автор этого руководства в некоторых аспектах более категоричен, нежели Джо Селко, а в других, напротив, более гибок. И, конечно, нельзя не отметить, что это руководство значительно короче и лаконичнее книги Селко — здесь вы не встретите ни весёлых историй из жизни, наглядно объясняющих, как и почему лучше не делать, ни длинных повествований, мотивирующих на использование той или иной рекомендации.

Руководство написано в формате Markdown, что позволяет легко включить его в проект или просто сослаться на него оттуда, что гораздо удобнее, нежели работать с большой бумажной книгой.

➡️ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥32👎1
🖥 27 распространённых вопросов по SQL с собеседований и ответы на них

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

➡️ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥21
🖥🍏 Мобильная разработка - это сейчас сила и мощь. За три месяца можно стартануть и начать зарабатывать айтишную зарплату. Но не так все просто, надо постараться и попотеть.

Научитесь делать приложения, на которых можно реально заработать.

📛 Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🔥1
🖥 Вопрос с собеседования Amazon

Напишите запрос, который будет идентифицировать возвращающихся активных пользователей. Вернувшийся активный пользователь — это пользователь, совершивший вторую покупку в течение 7 дней после любой другой покупки. Выведите список user_id этих вернувшихся активных пользователей.

amazon_transactions

id:int
user_id:int
item:varchar
created_at:datetime
revenue:int

Ответ

SELECT
DISTINCT(a.user_id)
FROM amazon_transactions a
JOIN amazon_transactions b
ON a.user_id = b.user_id
WHERE a.created_at - b.created_at BETWEEN 0 AND 7
AND a.id != b.id

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥32👎1🤬1
🖥 Goose — инструмент для миграции баз данных

Может запускать миграции в виде файлов SQL на диске или встроенных в функции Go. Это означает, что вы можете отправить автономный двоичный файл для выполнения миграций без каких-либо зависимостей. Поддерживает неупорядоченные миграции. Имеется поддержка БД: Redshift, MySQL, Postgres, Clickhouse и другие.

Стоимость: #бесплатно.

$ go install github.com/pressly/goose/v3/cmd/goose@latest

🖥 Github
➡️ Инструкции к установке

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥41
🖥 Вопрос с собеседования Microsoft

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

ms_user_dimension

user_id:int
acc_id:int
ms_acc_dimension

acc_id:int
paying_customer:varchar
ms_download_facts

date:datetime
user_id:int
downloads:int


Ответ

with out AS(select date
, Sum (downloads) Filter(Where paying_customer = 'no') as non_paying
, Sum (downloads) Filter(Where paying_customer = 'yes') as paying
From ms_download_facts fact
Left Join ms_user_dimension a
on fact.user_id = a.user_id
Join ms_acc_dimension acc
on a.acc_id = acc.acc_id
Group by date
order by date)
Select date , non_paying , paying
From out
Where non_paying > paying


@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍162🔥1
🖥 5 бесплатных сервисов для практики SQL

Когда вы только начинаете изучать SQL, нужно как можно больше практики. Хорошо, когда есть реальные задачи на работе, на которых можно практиковаться. Но если их нет - то эти бесплатные сервисы помогут получить необходимую практику и улучшить свой уровень.

Кстати, в телеграм канале у меня был пост о том, как выучить SQL быстрее, его вы можете посмотреть тут.

➡️ Читать дальше

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🔥2
🖥 Порядок выполнения SQL-запросов

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3013🔥4