TGViewer
Channel Public Channel
Data Science. SQL hub

Data Science. SQL hub

@sqlhub

По всем вопросам- @workakkk

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

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

#VRHSZ
Subscribers
36K
Photos
1.2K
Videos
99
Links
1.2K

Showing posts older than #499 · Back to latest

Older Posts 20 shown
Post #497 3.3K
🖥 Как написать SQL скрипт

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

Для написания SQL-скрипта необходимо выполнить следующие шаги:

Определить цель скрипта - что он должен делать и какие данные необходимо извлечь или изменить.

Открыть текстовый редактор, такой как блокнот или специализированный редактор SQL-скриптов.

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

CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
hire_date DATE
);


Сохранить файл с расширением .sql. В некоторых редакторах можно также выполнить скрипт непосредственно из редактора.

Запустить скрипт на базе данных. Это можно сделать с помощью интерфейса базы данных или с помощью командной строки, используя утилиты командной строки, такие как sqlcmd или mysql.

Убедиться, что скрипт выполнен успешно и не было ошибок.

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

INSERT INTO employees (id, first_name, last_name, email, hire_date)
VALUES (1, 'John', 'Doe', 'johndoe@email.com', '2022-01-01');

Этот скрипт добавляет нового сотрудника в таблицу employees с идентификатором 1, именем John, фамилией Doe, электронной почтой johndoe@email.com и датой найма 1 января 2022 года.

Задание:

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

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

@sqlhub
  • 👍 9
  • ❤ 4
  • 🔥 2
Post #496 3.91K
🖥 Как транспонировать в 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
  • 👍 22
  • 🔥 6
  • ❤ 5
Post #494 3.56K
🖥 Разбор ошибок. SQL запрос кросс-джойн двух таблиц без явного указания оператора JOIN

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


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

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

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

@sqlhub
  • 👍 8
  • 🔥 3
  • ❤ 2
Post #493 3.81K
🖥 Сложная задача про календарь

Давай возьмемся за действительно сложную задачу. Напиши 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
  • ❤ 8
  • 🔥 4
  • 👍 3
Post #491 3.61K
🖥 Вводный курс в SQL

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

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

▪ Читать

@sqlhub
  • 👍 12
  • ❤ 4
  • 🔥 4
Post #489 3.55K
🖥 Руководство по наиболее востребованным базовым командам SQL

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

▪ Читать

@sqlhub
  • 👍 11
  • 🔥 4
  • ❤ 2
Post #487 3.54K
🖥 Освоение SQL: Использование данных для решения сложных задач

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

▪Читать

@sqlhub
  • 👍 14
  • 🔥 5
  • ❤ 2
Post #486 3.76K
🖥 Задача SQL

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

Задания:

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

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

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

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

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

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

@sqlhub
  • 🔥 15
  • ❤ 6
  • 👍 5
Post #484 3.34K
  • 👍 10
  • 👎 2
  • 🔥 2
  • 👏 2
  • ❤ 1
Post #483 3.91K
🖥 Выбор максимума из одного поля и значения другого поля по максимуму третьего поля

Дана таблица - 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
  • 👍 19
  • 🔥 7
  • ❤ 2
Post #482 3.75K
  • ❤ 17
  • 👍 9
  • 🔥 4
  • 👎 1
  • 👏 1
Post #480 3.67K
🖥 13 упражнений по SQL с решениями

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

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

▪Читать

@sqlhub
  • 👍 11
  • 🔥 5
  • ❤ 3
Post #479 4.11K
Работа_с_PostgreSQL_в_Python.pdf804.4 KB
🖥 Работа с PostgreSQL в Python на русском

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

#doc #python #postgresql #russian

@sqlhub
  • 👍 21
  • ❤ 4
  • 🥰 1
  • 🤔 1
Post #478 3.65K
🖥 NoSQLMap — Автоматизированный инструмент для баз данных NoSQL, предназначенный для аудита, а также для автоматизации атак путем внедрения и использования слабых сторон конфигурации по умолчанию в базах данных NoSQL и веб-приложениях, использующих NoSQL, для раскрытия или клонирования данных из базы данных.

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

🖥 GitHub

@sqlhub
  • 👍 9
  • ❤ 3
  • 🔥 3
Post #477 3.83K
🖥 Как расширенные объединения и оконные функции могут вывести ваши SQL-запросы на новый уровень

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

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

▪ Читать

@sqlhub
  • 👍 20
  • ❤ 4
  • 🔥 1
Post #476 3.37K
  • 👍 20
  • 🔥 6
  • ❤ 5
  • 🤔 1
Post #474 3.75K
🖥 SQL для начинающих: 10 правил построения «точных» запросов

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

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

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

@sqlhub
  • 👍 17
  • ❤ 5
  • 🔥 2
Post #473 3.96K
🖥 SQL: план изучения

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

▪Читать

#sql

@sqlhub
  • 👍 19
  • ❤ 3
  • 🔥 2
Post #471 4K
🖥 Руководство по подготовке к собеседованию по SQL

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

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

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

▪ Читать

@sqlhub
  • 👍 16
  • ❤ 6
  • 🔥 3
Post #470 4.04K
🖥 Полезные приемы с кодом для аналитиков данных на 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
  • 👍 13
  • 🔥 5
  • ❤ 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →