Статьи
811 прочтений · 3 года назад
Разбор задачи SQL №16 (с ошибкой)
Задача номер 16. Вывести отсортированный по количеству перелетов (по убыванию) и имени (по возрастанию) список пассажиров, совершивших хотя бы 1 полет. Задачка интересна тем, что в ней есть ошибка в онлайн-тренажере. Для начала - как бы я решал эту задачу. Запрос несложный, но... неправильный! SELECT p.name, COUNT(DISTINCT pit.trip) AS count FROM Pass_in_trip AS pit JOIN Passenger AS p ON p.id = pit.passenger GROUP BY p.id ORDER BY count DESC, p.name ASC В разборе задачи №5 я писал, что COUNT(DISTINCT id) лучше, чем COUNT(*), т...
932 прочтения · 3 года назад
Разбор задачи SQL №13
В прошлый раз разбиралась десятая задача. В этот раз начнем разбирать тринадцатую, в которой познакомимся c элементом запроса HAVING. На мой взгляд, это первая задача, которая требует чуточку сообразительности. Задача - Вывести имена людей, у которых есть полный тёзка среди пассажиров. На самом деле, сообразительность нужна только для того, чтобы переформулировать постановку "Вывести имена людей, у которых есть полный тёзка среди пассажиров" в более понятную "Вывести name из таблицы Passenger, встречающиеся более 1 раза"...
1,2K прочтений · 3 года назад
Разбор задачи SQL №10
В прошлой статье мы разобрали решение 6 задачи. Сейчас же перепрыгнем сразу на десятую, т.к. в 7, 8, и 9 нет ничего принципиально интересного или нового (разве что, в восьмой используется оператор для расчета разницы между двумя datetime-переменными TIMEDIFF(t.time_in, t.time_out) AS flight_time). Задача - Вывести вылеты, совершенные с 10 ч. по 14 ч. 1 января 1900 г. Задачка, казалось бы, пустяковая. Но хочу остановиться на одном моменте. По опыту проведения тестовых заданий, 7 из 10 человек в подобной задаче напишут запрос подобного вида: SELECT * FROM Trip AS t WHERE t...
3K прочтений · 3 года назад
Разбор задачи SQL №6
В прошлый раз я затронул тему JOIN-ов. В шестой задаче тренажера нам впервые потребуется объединять таблицы. Задача - вывести названия (name) компаний, которые совершали полет на Boeing. Предполагаю, что если одна и та же компания летала на Boeing несколько раз, нам достаточно вывести ее название единожды. Другими словами, требуется список из уникальных имен компаний, значит, в запросе будет фигурировать DISTINCT: SELECT DISTINCT c.name FROM Trip AS t JOIN Company AS c ON t.company = c...
464 прочтения · 3 года назад
Поговорим о JOIN-ах
Оператор JOIN в SQL используется для объединения таблиц и получения результатов запроса из нескольких таблиц разом. Синтаксис запроса с участием JOIN-а двух таблиц, а также различные виды JOIN-ов можно увидеть на схеме: Что надо помнить, изучая подобное Эйлеровское представление оператора JOIN? 1. Во-первых, учить все виды JOIN-ов, может, необходимо для экзамена в университете, но для решения реальных задач не нужно. 95% задач на практике решается с использованием INNER JOIN и LEFT JOIN, и уж поверьте,...
2,5K прочтений · 3 года назад
Разбор задачи SQL №5
Продолжаем цикл статей с разбором задач из онлайн-тренажера. На очереди пятая задача. В SQL, помимо прочего, работают многие операторы, знакомые каждому школьнику с уроков информатики - SUM, COUNT, AVG, MIN/MAX, ROUND, ABS и прочие. В пятой задаче нам как раз потребуется оператор COUNT для того, чтобы вывести количество рейсов, совершенных на TU-134. Для начала, как и в предыдущей задаче, найдем обозначение TU-134 в таблице Trip с помощью запроса SELECT * FROM Trip LIMIT 10. Никаких сюрпризов. Нужный нам самолет обозначен банально 'TU-134'...
1,3K прочтений · 3 года назад
Разбор задачи SQL №4
Продолжаем цикл статей с разбором задач из онлайн-тренажера. На очереди четвертая задача, в рамках которой познакомимся с оператором LIKE. LIKE позволяет искать данные в таблице по вхождению подстроки в строку. Допустим, в таблице Passenger есть значение "Ivan Ivanov", которое мы пытаемся найти. Как его найти? Если мы точно знаем, что ищем, все просто: SELECT * FROM Passenger WHERE name = 'Ivan Ivanov' Если мы помним только начало, то нам поможет LIKE: SELECT * FROM Passenger WHERE name LIKE...
1,2K прочтений · 3 года назад
Разбор задачи SQL №3
Напомню, что в одной из предыдущих статей я начал разбирать задачи из этого онлайн-тренажера. Тренажер содержит 66 задач, но разбирать их по-порядку я не буду, какие-то буду определенно пропускать. Так, Задача №1 и Задача №2 не отличаются ничем, кроме таблицы, к которой происходит запрос. Поэтому сразу перепрыгиваем на третье упражнение. Сегодня разберем задачу №3. Вывести все рейсы, совершенные из Москвы. Где искать рейсы? Думаю, в таблице Trip. Рядом с постановкой задачи в тренажере есть подсказка "Поля в результирующей таблице: *"...
41 прочтение · 3 года назад
Ключевой навык аналитика данных (и не только)
В первой статье на этом канале я писал о том, какими хард-скилами должен обладать аналитик данных. Но если меня спросят, какой софт-скил является ключевым в профессии аналитика (и не только) и какого навыка не хватает многим аналитикам (и не только), то у меня есть безоговорочный лидер. Парадокс этого навыка в том, что чем больше опыта приобретает человек, тем больше вероятность утратить этот навык. А навык простой - говорить "Я этого не умею/я это не знаю". Нужно отчетливо понимать, что опыт каждой компании и каждого человека субъективен и уникален...
94 прочтения · 3 года назад
Сколько зарабатывают аналитики данных?
Честно сказать, большого желания писать о деньгах у меня нет, но интерес к этой теме определенно присутствует, поэтому напишу то, что думаю, исходя из личного опыта. Прежде, чем перейти к звону шекелей в карманах, предлагаю порассуждать, из чего в целом складывается ощущение удовлетворенности человека на рабочем месте. Как показывает практика, деньги - это далеко не все, что может (и должен) дать порядочный работодатель. 1. Интересные задачи. Сортировка данного списка, конечно, предполагает логику...
2,2K прочтений · 3 года назад
Разбор задачи SQL №1
В одной из первых статей я писал, что навык работы с Базами Данных и знание SQL - жизненно важное умения для аналитика данных. Понимая, что аудитория канала может обладать совершенно разным уровнем навыков работы с SQL, я подумал, что логично будет выстроить SQL-ликбез таким образом, чтобы в его рамках нашлось что-то интересное как для совсем-совсем новичков, так и для матерых аналитиков. Что будет по теме SQL далее на этом канале? Я возьму сайт-тренажер (на всякий случай, это не реклама, если...
43 прочтения · 3 года назад
Какие бывают аналитики. Часть 2
Эта статья является продолжением предыдущей. Аналитик данных. Чаще всего аналитиком данных называет человека, который выполняет следующую последовательность работ: 1) сбор данных (SQL, Big Data-хранилища, API различных продуктов, логи и т.д.); 2) очистка и структурирование собранных данных; 3) проверка гипотез и нахождение решений поставленных задач с помощью (сюрприз-сюрприз) анализа данных, математики и в частности статистики, а также, возможно, инструментов и методов машинного обучения;...