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

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
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
🖥 Подборка ресурсов, где можно выучить\подтянуть знания SQL:
В порядке изучения с "нуля":

https://mode.com/sql-tutorial/ много бесплатных уроков для начинающих, идущих по нарастающей
https://www.kaggle.com/learn/intro-to-sql https://www.kaggle.com/learn/advanced-sql короткие уроки от kaggle вводящие в курс дела, подойдут для повторения основ
https://www.sql-ex.ru/ лучший тренажер по SQL, решайте парочку задач в день и никакие задания на интервью не будут вам страшны
https://stepik.org/course/63054/promo https://www.sqlhabit.com/
https://sqlzoo.net/ еще несколько тренажеров с задачками для прокачивания практических навыков
https://stepik.org/course/70710/promo#toc для тех кто уже знает основы и базу и хочет развить знания еще больше.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥71
🚀 Big Data - действительно полезный канал для всех, кто работает с данными.

- огромный набор бесплатных наборов данных
- инструменты для работы с данными
- обучающие материалы для датасаентистов
- лучшие практики Машинного Обучения
- перевод книг и статей

🔥 Подписаться
👍61🔥1
🖥 Вопрос с собеседования Airbnb

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

airbnb_search_details

id:int
price:float
property_type:varchar
room_type:varchar
amenities:varchar
accommodates:int
bathrooms:int
bed_type:varchar
cancellation_policy:varchar
cleaning_fee:bool
city:varchar
host_identity_verified:varchar
host_response_rate:varchar
host_since:datetime
neighbourhood:varchar
number_of_reviews:int
review_scores_rating:float
zipcode:int
bedrooms:int
beds:int


Ответ

SELECT city, property_type, avg(bedrooms) as n_bedrooms_avg, avg(bathrooms) as n_bathrooms_avg
FROM airbnb_search_details
GROUP BY city, property_type
ORDER BY city



@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍10🔥3
➡️ Airtable: рецепт молниеносного создания баз данных и таблиц

Airtable представляет собой платформу из разряда low-code, т.е. практически не требует написания программного кода. Она позволяет любому создавать реляционные базы и визуализировать данные, не требуя для этого даже знания SQL и Excel.

Подумайте, сколько времени вы бы потратили на выполнение следующего задания:

создать базу данных с записями;
выбрать конкретные данные по заданным условиям;
отобразить отфильтрованные данные в виде диаграммы (столбчатой, круговой);
поделиться данными проекта онлайн.
Задание простое и выполнимое посредством Excel. Но оно имеет тенденцию к усложнению и, как следствие, требует больше времени. Выбирая Airtable, вы получаете значительное преимущество: сразу начинаете работать с удобным онлайн GUI.

В статье мы рассмотрим основные преимущества и возможности Airtable на практическом примере.

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

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥2
🗄️⚠️ Как намеренно расставленные ошибки помогают сделать SQL-код легко поддерживаемым

В этой статье мы рассмотрим различные способы вызова ошибок, которые помогут упростить поддержку SQL-кода в будущем.

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

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

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

​db_employee

id:int
first_name:varchar
last_name:varchar
salary:int
department_id:int
db_dept

id:int
department:varchar

Ответ:

select abs(max(salary) filter (where department = 'marketing') - max(salary) filter (where department = 'engineering'))
from db_employee emp
LEFT JOIN db_dept dept on emp.department_id = dept.id


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

Найдите самую высокую цель, достигнутую сотрудником или сотрудниками, работающими под менеджером с id 13. Выведите имя сотрудника/сотрудников и достигнутую цель. Решение должно показывать самую высокую цель, достигнутую при manager_id=13, и какие сотрудники ее достигли.

salesforce_employees

id:int
first_name:varchar
last_name:varchar
age:int
sex:varchar
employee_title:varchar
department:varchar
salary:int
target:int
bonus:int
email:varchar
city:varchar
address:varchar
manager_id:int


Ответ:

select first_name, target
from salesforce_employees
where manager_id=13 and
target=(select max(target) from salesforce_employees where manager_id=13)


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

Найдите сотрудника с самой высокой зарплатой в каждом отделе. Выведите название отдела, имя сотрудника и соответствующую зарплату.

employee

id:int
first_name:varchar
last_name:varchar
age:int
sex:varchar
employee_title:varchar
department:varchar
salary:int
target:int
bonus:int
email:varchar
city:varchar
address:varchar
manager_id:int


ОТВЕТ:

SELECT department as department,
first_name as employee_name,
salary
FROM employee
WHERE (department, salary) IN
(SELECT department, MAX(salary)
FROM employee
GROUP BY department)

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥21