Data Science. SQL hub
36.2K subscribers
1.2K photos
99 videos
37 files
1.2K links
По всем вопросам- @workakkk

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo

#VRHSZ
Download Telegram
🖥 Задача SQL

Дана пустая таблица publisher

Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а Синтаксис name имеет тип varchar(40). Какие из следующих запросов корректно отработают:

1) INSERT INTO publisher (name) VALUES ('OREILLY');
2) INSERT INTO publisher (name) VALUES ('О Reilly');
3) INSERT INTO publisher (name) VALUES ('O'Reilly');
4) INSERT INTO publisher (name) VALUES ('O-Reilly');


Ответ:

1, 2, 4

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍12🔥4
🖥 Полезные приемы с кодом для аналитиков данных на Python

1. Data Science. Советы по написанию эффективного кода на Python - https://www.youtube.com/watch?v=1Mcy-uatp_c&t=14s

2. Полезные приемы в Pandas - https://www.youtube.com/watch?v=Sd2S5rXe8sY&t=165s

3. Раскройте потенциал Python Numpy: руководство для начинающих в науке о данных - https://www.youtube.com/watch?v=XX2XremQ0fg&t=12s

4. Data science c Python.Ускоряем Pandas в 120 раз- https://www.youtube.com/watch?v=-dAdaEv23vk&t=4s

5. 26 практических приёмов и хитростей Python - https://www.youtube.com/watch?v=vAMyfvtxxdQ&t=5s

6. 5 декораторов Python для Data Science проектов - https://www.youtube.com/watch?v=rxq11WHAlqU

7. ChatGPT + Midjouney на практике - https://www.youtube.com/watch?v=2gUqbc3Ikmo&t=5s

8. Разбор вопросов с собеседований Python - https://www.youtube.com/watch?v=4L1e-A3AOL4&t=5s

9. 15 полезных лайфхаков с кодом Машинного обучения на Python - https://www.youtube.com/watch?v=loOtlwcdiBA&t=4s

10. Декораторы Python, которые выведут ваш код на новый уровень - https://www.youtube.com/watch?v=qxrGAogl4iM

🎞 Все видео по анализу данных

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5❤2
🖥 Руководство по подготовке к собеседованию по SQL

Вопросы по SQL — одна из ключевых тем собеседования на должность аналитика данных или продукции, а также бизнес-аналитика. Крупные технологические компании, в том числе иностранные, такие как Amazon, Uber и Facebook, особенно тщательно проверяют знания претендента в этой области.

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

Задачи по SQL можно разделить на 4 уровня. В рамках гайда мы рассмотрим каждый из них вместе со стандартными примерами для практики. Если хотите лучше усвоить материал, не переходите сразу же к решению.

▪ Читать

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤6🔥3
🖥 SQL: план изучения

Дорожная карта по SQL, которая поможет изучить основные концепции SQL, команды, а также как с ними работать. Если следовать плану, то изучить данный язык можно за 2 месяца:

▪Читать

#sql

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤3🔥2
🖥 SQL для начинающих: 10 правил построения «точных» запросов

«Точный» SQL-запрос возвращает «чистые» данные в необходимом и достаточном количестве, при этом потребляет как можно меньше памяти и справляется за минимальное время. Скорость работы с базой влияет на производительность. Потребление памяти может негативно сказаться даже на безопасности. Всё это прямо и косвенно влияет на прибыль компании. В статье разберёмся, как не допускать ошибок.

Для наших целей понадобятся тестовые данные. Будем работать с базой данных Oracle Database. Примеры в статье будут приводиться на языке SQL, PL/SQL. Нам важен подход, который можно адаптировать под другую реляционную систему управления базами данных — РСУБД.

▪ Часть 1
▪ Часть 2

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤5🔥2
Какой из следующих SQL запросов вернет все записи, отсортированные по колонке name в порядке возрастания из которых будут исключены записи, содержащие NULL в колонке description?
Anonymous Quiz
71%
SELECT * FROM table_name WHERE description IS NOT NULL ORDER BY name ASC;
14%
SELECT * FROM table_name WHERE description NOT NULL ORDER BY name ASC;
9%
SELECT * FROM table_name WHERE description <> NULL ORDER BY name ASC;
6%
SELECT * FROM table_name WHERE NOT (description IS NULL) ORDER BY name ASC;
👍20🔥6❤5🤔1
🖥 Как расширенные объединения и оконные функции могут вывести ваши SQL-запросы на новый уровень

В этой статье мы рассмотрим четыре распространённых типа соединений, а также различные типы доступных оконных функций.

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

▪ Читать

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤4🔥1
🖥 NoSQLMap — Автоматизированный инструмент для баз данных NoSQL, предназначенный для аудита, а также для автоматизации атак путем внедрения и использования слабых сторон конфигурации по умолчанию в базах данных NoSQL и веб-приложениях, использующих NoSQL, для раскрытия или клонирования данных из базы данных.

⚠️ Информация предоставлена исключительно с целью ознакомления. И побуждает обратить внимание на проблемы в безопасности.

🖥 GitHub

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥3
Работа_с_PostgreSQL_в_Python.pdf
804.4 KB
🖥 Работа с PostgreSQL в Python на русском

▪ Подключение к БД
▪ Создание таблиц
▪ Вставка и извлечение данных
▪ Обновление таблиц
▪ Удаление строк

#doc #python #postgresql #russian

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤4🥰1🤔1
🖥 13 упражнений по SQL с решениями

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

Независимо от того, являетесь ли вы новичком или опытным разработчиком, эти упражнения помогут укрепить знания и подготовиться к реальным собеседованиям. Так что давайте погрузимся в работу и начнём решать задачи!

▪Читать

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5❤3
Какой из следующих SQL запросов вернет топ-5 самых просматриваемых постов из таблицы posts, отсортированных по количеству просмотров в порядке убывания?
Anonymous Quiz
61%
SELECT * FROM posts ORDER BY views DESC LIMIT 5;
21%
SELECT TOP 5 * FROM posts ORDER BY views DESC;
9%
SELECT * FROM posts WHERE ROWNUM <= 5 ORDER BY views DESC;
10%
SELECT * FROM posts WHERE views >= 5 ORDER BY views DESC LIMIT 5;
❤17👍9🔥4👎1👏1
🖥 Выбор максимума из одного поля и значения другого поля по максимуму третьего поля

Дана таблица - table, с тремя полями field1, field2, field3.
Задача получить в одном запросе два значения:

Максимум поля field1
Значение поля field2 в записи, где поле field3 максимально.
Значения поля field3 уникальны, так что оба ответа однозначны.

Решить эти две задачи двумя запросами не проблема.

1) SELECT MAX(field1) FROM table;
2)SELECT field2 FROM table
ORDER BY field3 DESC
LIMIT 1;


или используем для второй задачи вариант с WHERE:

SELECT field2 FROM table
WHERE field3 = (SELECT MAX(field3) FROM table);


Как получить оба в одном запросе

Есть два хорошо оптимизированных запроса (при условии что соответствующие индексы в наличии). У которых между собой ничего общего, кроме таблицы-источника, нет. Причём каждый запрос возвращает строго одну запись. В таких условиях решение по объединению очевидно. CROSS JOIN.

SELECT *
FROM (
SELECT MAX(field1) field1
FROM table
) t1
CROSS JOIN (
SELECT field2
FROM table
ORDER BY field3 DESC LIMIT 1
) t2
;


Второй вариант

select
(select max(a) from tbl) as a,
b,
c
from tbl
order by c desc
limit 1


Решение с CROSS JOIN работает на 10% быстрее.

👉 Пишите ваше решение в комментариях👇

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7❤2
С помощью какого из следующих запросов можно выбрать все записи из таблицы Persons, где значение поля FirstName равно Peter и значение поля LastName равно Jackson?
Anonymous Quiz
5%
SELECT FirstName='Peter', LastName='Jackson' FROM Persons
3%
SELECT * FROM Persons WHERE FirstName<>'Peter' AND LastName<>'Jackson'
92%
SELECT * FROM Persons WHERE FirstName='Peter' AND LastName='Jackson'
👍10👎2🔥2👏2❤1
🖥 Задача SQL

Есть кинотеатр, в нем идут фильмы. У фильма есть название, длительность (пусть для простоты будет 60, 90 или 120 минут), цена билета (в разное время и дни может быть разная), время начала сеанса (один фильм может быть показан несколько раз в разное время за разную цену). Также, есть информация о купленных билетах (номер билета, на какой сеанс).

Задания:

▪составь грамотную нормализованную схему хранения этих данных в БД. Внеси в нее 4-5 фильмов, расписание на один день и несколько проданных билетов.

Напишите запросы, считающие и выводящие в понятном виде:

▪ошибки в расписании (фильмы накладываются друг на друга), отсортированные по возрастанию времени.
Выводить необходимо колонки «фильм 1», «время начала», «длительность», «фильм 2», «время начала», «длительность».

▪перерывы больше или равные 30 минут между фильмами, выводятся по уменьшению длительности перерыва. Выводить надо колонки «фильм 1», «время начала», «длительность», «время начала второго фильма», «длительность перерыва».

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

▪число посетителей и кассовые сборы, сгруппированные по времени начала фильма: с 9 до 15, с 15 до 18, с 18 до 21, с 21 до 00:00. (то есть сколько посетителей пришло с 9 до 15 часов, сколько с 15 до 18 и т.д.).

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤6👍5
🖥 Освоение SQL: Использование данных для решения сложных задач

Я решил подробно рассказать о том, как я подхожу к использованию SQL для запроса баз данных. Я принял участие в еженедельном конкурсе Danny’s SQL challenge, чтобы начать тематическое исследование по этой теме. Вся необходимая вам информация об этом испытании доступна здесь.

▪Читать

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5❤2
🖥 Руководство по наиболее востребованным базовым командам SQL

Продемонстрируем применение основных команд SQL на примерах.

▪ Читать

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4❤2
🖥 Вводный курс в SQL

SQL – это важнейший инструмент для управления данными в современной технологической отрасли. Знакомство с базовыми концепциями SQL необходимо для работы с базами данных, а приобретение знаний в области передовых концепций может вывести ваши навыки на новый уровень.

При правильном обучении и практике любой желающий может овладеть SQL и эффективно управлять данными.

▪ Читать

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥4
🖥 Сложная задача про календарь

Давай возьмемся за действительно сложную задачу. Напиши SQL-код, выводящий календарь на текущий месяц в виде:

Пн Вт Ср Чт Пт Сб Вс

| | | | | 1 | 2
3 | 4 | 5 | 6 | 7 | 8 | 9 10 | 11 | 12 | 13 | 14 | 15 | 16 17 | 18 | 19 | 20 | 21 | 22 | 23 24 | 25 | 26 | 27 | 28 | 29 | 30

Подсказка: ты можешь делать запросы без таблиц, например SELECT 2 + 3, 'Hello'
Подсказка: здесь не надо использовать циклы или процедуры

Подсказка: функции работы с датой и временем ты можешь найти тут http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html (англ.)
Подсказка: для сокращения объема кода ты можешь использовать переменные (создаются командой SET)

Пишите свое решение в комментариях👇

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥4👍3
🖥 Разбор ошибок. SQL запрос кросс-джойн двух таблиц без явного указания оператора JOIN

SELECT *
FROM orders, customers
WHERE orders.customer_id = customers.customer_id
AND customers.first_name = 'John'


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

Кроме того, он не использует оператор WHERE для фильтрации строк, что означает, что он возвращает все строки, удовлетворяющие условию соединения. Это может привести к запросу к большому объему данных, из-за которых запрос будет выполняться медленно.

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

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3❤2
🖥 Как транспонировать в SQL?

Для транспонирования таблицы в SQL необходимо использовать оператор PIVOT или функцию MAX или CASE в сочетании с оператором GROUP BY.

Оператор PIVOT позволяет преобразовать строки в столбцы, а столбцы - в строки, используя значения одного столбца в качестве заголовков новых столбцов.

Синтаксис оператора PIVOT выглядит следующим образом:

SELECT *
FROM table_name
PIVOT
(
aggregate_function(column_to_aggregate)
FOR column_to_pivot IN (list_of_pivot_values)
) AS alias_name;


Здесь table_name - это имя таблицы, которую нужно транспонировать aggregate_function - это агрегатная функция, которую нужно применить к столбцу, column_to_aggregate - это имя столбца, который нужно агрегировать, column_to_pivot - это имя столбца, который нужно использовать для создания новых столбцов, list_of_pivot_values - это список значений столбца column_to_pivot, для которых нужно создать новые столбцы, alias_name - это имя для результирующей таблицы

Пример использования оператора PIVOT:

SELECT *
FROM (
SELECT product_id, year, sales
FROM sales_table
) AS source_table
PIVOT
(
SUM(sales)
FOR year IN (2023, 2022, 2021)
) AS pivot_table;


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

Если оператор PIVOT недоступен в вашей версии SQL, вы можете использовать функцию MAX или CASE в сочетании с оператором GROUP BY.

Синтаксис функции MAX для транспонирования таблицы выглядит следующим образом:

SELECT column_to_group_by,
MAX(CASE column_to_pivot WHEN pivot_value_1 THEN value_to_show ELSE NULL END) AS pivot_value_1,
MAX(CASE column_to_pivot WHEN pivot_value_2 THEN value_to_show ELSE NULL END) AS pivot_value_2,
...
FROM table_name
GROUP BY column_to_group_by;


Здесь column_to_group_by - это имя столбца, по которому нужно группировать данные, column_to_pivot - это имя столбца, который нужно использовать для создания новых столбцов, pivot_value_1, pivot_value_2 - это значения столбца column_to_pivot, для которых нужно создать новые столбцы, value_to_show - это значение, которое нужно показать в новом столбце

Задача:

Дана таблица T:

id value
2 a
3 a
4 b
5 c


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

a b c
2 1 1


Пишите свое решение в комментариях👇

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥6❤5