Дана пустая таблица 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');
Ответ:
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍12🔥4
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 — одна из ключевых тем собеседования на должность аналитика данных или продукции, а также бизнес-аналитика. Крупные технологические компании, в том числе иностранные, такие как Amazon, Uber и Facebook, особенно тщательно проверяют знания претендента в этой области.
При подготовке к такому собеседованию могут возникнуть трудности с детальной проработкой всех возможных вариантов вопросов по SQL. Чтобы помочь вам справиться с этим, я подготовил краткий гайд на основе собственного опыта — мне довелось побывать как кандидатом на должность, так и работодателем.
Задачи по SQL можно разделить на 4 уровня. В рамках гайда мы рассмотрим каждый из них вместе со стандартными примерами для практики. Если хотите лучше усвоить материал, не переходите сразу же к решению.
▪ Читать
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤6🔥3
«Точный» 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;
13%
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-запросы на новый уровень и раскрыть истинную мощь ваших данных.
▪ Читать
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤4🔥1
⚠️ Информация предоставлена исключительно с целью ознакомления. И побуждает обратить внимание на проблемы в безопасности.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥3
Работа_с_PostgreSQL_в_Python.pdf
804.4 KB
▪ Подключение к БД
▪ Создание таблиц
▪ Вставка и извлечение данных
▪ Обновление таблиц
▪ Удаление строк
#doc #python #postgresql #russian
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤4🥰1🤔1
В этом наборе упражнений мы поработаем с 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;
8%
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
Есть кинотеатр, в нем идут фильмы. У фильма есть название, длительность (пусть для простоты будет 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 для запроса баз данных. Я принял участие в еженедельном конкурсе Danny’s SQL challenge, чтобы начать тематическое исследование по этой теме. Вся необходимая вам информация об этом испытании доступна здесь.
▪Читать
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5❤2
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
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 необходимо использовать оператор 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