5 заданий по sql с реальных собеседований

SQL Учебник

SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии

DBeaver

DBeaver is a community in which several developers, SQL programmers, data analysts, and data administrators work as one community. It also provides users with a free multi-platform database tool.

DBeaver supports all common database types such as MySQL, Oracle, DB2, SQLite, Sybase, Derby, and many others.

The best part of DBeaver is that it supports ER charts to define relationships and compare database structure. In addition to this, you can also go to the data and metadata searches.

Advantages

  • It supports NoSQL and Big-Data database.
  • Select the desired database driver from a variety of options.
  • Create your own database drivers according to your needs.
  • It supports multiple data types and advanced security.
  • Extended data layouts and Visual Query Builder.

Prices

DBeaver basically offers three types of plans based on duration, both per month/year. The plan is exactly the same, but the difference is in the maturity date of the plan.

Задачи по SQL

  1. Создать таблицы competition, result, sportsman.
  2. Заполните таблицы тестовыми данными с помощью команды INSERT
  3. Создать таблицу  как результат выполнения команды SELECT.
  4. Выдайте всю информацию о спортсменах из таблицы sportsman.
  5. Выдайте наименование и мировые результаты по всем соревнованиям.
  6. Выберите имена всех спортсменов, которые родились в 1990 году. Материал сайта www.itmathrepetitor.ru
  7. Выберите наименование и мировые результаты по всем соревнованиям, установленные 12-05-2010 или 15-05-2010.
  8. Выберите дату проведения всех соревнований, проводившихся в Москве и полученные на них результаты равны 10 секунд.
  9. Выберите имена всех спортсменов, у которых персональный рекорд не равен 25 с.
  10. Выберите названия всех соревнований, у которых мировой рекорд равен 15 с и дата установки рекорда не равна 12-02-2015.
  11. Выберите города проведения соревнований, где результаты принадлежат множеству {13, 25, 17, 9}.
  12. Выберите имена всех спортсменов, у которых год рождения 2000 и разряд не принадлежит множеству {3, 7, 9}.
  13. Вычислите значение с помощью SQL. Материал сайта www.itmathrepetitor.ru
  14. Выберите дату проведения всех соревнований, у которых город проведения начинается с буквы «М».
  15. Выберите имена всех спортсменов, у которых имена начинаются с буквы «М» и год рождения не заканчивается на «6».
  16. Выберите наименования всех соревнований, у которых в названии есть слово «международные».
  17. Выберите годы рождения всех спортсменов без повторений.
  18. Найдите количество результатов, полученных 12-05-2014.
  19. Вычислите максимальный результат, полученный в Москве.
  20. Вычислите минимальный год рождения спортсменов, которые имеют 1 разряд.
  21. Определите имена спортсменов, у которых личные рекорды совпадают с результатами, установленными 12-04-2014.
  22. Выведите наименования соревнований, у которых дата установления мирового рекорда совпадает с датой проведения соревнований в Москве 20-04-2015.
  23. Вычислите средний результат каждого из спортсменов. Материал сайта www.itmathrepetitor.ru
  24. Выведите годы рождения спортсменов, у которых результат, показанный в Москве выше среднего по всем спортсменам.
  25. Выведите имена всех спортсменов, у которых год рождения больше, чем год установления мирового рекорда, равного 12 с.
  26. Выведите список спортсменов в виде ‘Спортсмен ‘ ‘показал результат’ ‘в городе’
  27. Выведите имена всех спортсменов, у которых разряд ниже среднего разряда всех спортсменов, родившихся в 2000 году.
  28. Выведите данные о спортсменах, у которых персональный рекорд совпадает с мировым.
  29. Определите количество участников с фамилией Иванов, которые участвовали в соревнованиях с названием, содержащим слово ‘Региональные’ Материал сайта www.itmathrepetitor.ru
  30. Выведите города, в которых были установлены мировые рекорды.
  31. Найдите минимальный разряд спортсменов, которые установили мировой рекорд.
  32. Выведите названия соревнований, на которых было установлено максимальное количество мировых рекордов.
  33. Определите, спортсмены какой страны участвовали в соревнованиях больше всего.
  34. Измените разряд на 1 тех спортсменов, у которых личный рекорд совпадает с мировым.
  35. Вычислите возраст спортсменов, которые участвовали в соревнованиях в Москве.
  36. Измените дату проведения всех соревнований, проходящих в Москве на 4 дня вперед.
  37. Измените страну у спортсменов, у которых разряд равен 1 или 2, с Италии на Россию.
  38. Материал сайта www.itmathrepetitor.ru. Измените название соревнований с ‘Бег’ на ‘Бег с препятствиями’
  39. Увеличьте мировой результат на 2 с для соревнований ранее 20-03-2005.
  40. Уменьшите результаты на 2 с соревнований, которые проводились 20-05-2012 и показанный результат не менее 45 с.
  41. Удалите все результаты соревнований в Москве, участники которых родились не позже 1980 г.
  42. Удалите все соревнования, у которых результат равен 20 с.
  43. Удалите все результаты спортсменов, которые родились в 2001 году.

смотрите еще другие Задачи по SQL

АНО ДПО «ШАД»

Сайт: https://praktikum.yandex.ruСтоимость: по запросу

За 6 месяцев обучения по 10 часов в неделю слушатель освоит востребованные навыки аналитика данных и соберёт портфолио проектов.

Погружение в IT-профессию подразумевает постоянный контакт с изучаемыми технологиями, выполнение практических заданий и общение с наставником. Для этого создали собственную среду обучения.

С первого дня учится на практике. Дают знания небольшими частями, которые нужно сразу применить, написав собственный код в онлайн-тренажёре.

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

Стоимость:

  • «Вводный курс» – бесплатно. Слушатель поймёт, что представляет собой анализ данных, какие процессы он в себя включает и чем занимается аналитик. Изучит азы важнейшего инструмента — языка программирования Python и SQL. Можно оценить свои силы, мотивацию, запас времени, и решить, нужно ли идти дальше
  • «Платное продолжение» – 60 000 р. Закончив бесплатный курс, можно пойти дальше. С этого момента слушатель полноценно осваивает профессию аналитика

Сертификат — это официальный документ о дополнительном образовании. Чтобы его получить, необходимо сдать итоговый проект. Для работодателя это показатель, что слушатель достаточно знает об аналитике данных и самостоятельно выполнил проекты из портфолио.

SQL Учебник

SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии

Описание

21 век — век информации. Она окружает нас везде: дома, на работе, в машине, в метро. Информация хранится в базах данных в удобном для компьютера виде. Какие бы приложения вы не тестировали: десктопные, веб или мобильные, банковские системы или игры — вам нужно будет получать информацию из базы данных. Для этого используют специальный язык запросов — SQL (Structure Query Language). Базовые знания SQL сейчас требуют даже на вакансию джуниор-тестировщика.

Тренинг рассчитан на людей, знакомых с основами тестирования и желающих научиться работе с базами данных. Мы расскажем, как устроена база данных, как в ней хранятся данные и как их получать, начиная с самых простых запросов к одной таблице. Те, кто самостоятельно начинал знакомиться с SQL смогут структурировать свои знания, узнать об особенностях работы с разными СУБД и повысить мастерство написания сложных запросов к нескольким таблицам, используя внешние объединения по любым условиям.

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

Программа тренинга

Лекция 0 — Вводная. Строение баз данных и организационные вопросы.

  • Структура тренинга и орг.вопросы.
  • Основы устройства реляционных БД
  • Общие сведения про SQL:
    • Определение, отличие от других языков.
    • История создания SQL
    • Стандарты языка SQL, их плюсы и минусы

Модуль I

Лекция 1 — Исследование БД и структура запроса SELECT.

  • Установка Oracle XE и SQL Workbench
  • Структура запроса Select
  • Простейшие запросы к одной таблице
  • Понятие схемы пользователя
  • Исследование БД с помощью служебных таблиц
  • Применение знаний о структуре БД к тестированию
  • Работа с ошибками при составлении запроса

Лекция 2 — Типы данных, применяемые в SQL

  • Типы для хранения чисел.
  • Типы данных для хранения строк
  • Типы данных для хранения дат и времени
  • Специальные типы данных для хранения xml, идентификаторов и объектов.
  • Типичные ошибки, выявляемые для разных типов данных при тестировании

Модуль II

Лекция 3 — Выбор данных из одной таблицы с разными условиями

  • Задание условий для разных типов данных: числа, даты, строки в разной кодировке.
  • Условие LIKE и использование регулярных выражений в функции regexp_like
  • Значение NULL и работа с ним в запросе. Функция NVL
  • Функции конвертации типов данных
  • Объединение условий

Лекция 4 — Выбор данных из одной таблицы с разными условиями

  • Функции, применяемые для разных типов данных
  • Работа с датами и временем

Модуль III

Лекция 5 — Выбор данных из нескольких таблиц

  • Объединение таблиц в запросе через where
  • Разные типы JOIN
  • Отличия задания условий через Where и Join
  • Задание псевдонимов для таблиц

Лекция 6 — Примеры решения сложных задач на объединение нескольких таблиц

  • Объединение таблиц по неравенству
  • Объединение таблицы с самой собой
  • Типы сортировки
  • Сортировка колонок, содержащих значения NULL
  • Возможные ошибки приложений при добавлении сортировки

Модуль IV

Лекция 7 — Запросы с подзапросами

  • Работа с операторами In и Exist
  • Использование подзапросов

Лекция 8 — Работа с результатами запроса

  • Вывод уникальных значений через DISTINCT
  • Объединение и пересечение результатов. Union, union all, intersect, minus
  • Условный вывод данных с помощью оператора CASE

Модуль V

Лекция 9 — Запросы для анализа данных и подготовки отчетов

  • Операции над выбираемыми данными
  • Группировка данных. Запросы с GROUP BY и HAVING.
  • Отбор значимых для тестирования данных.

Лекция 10 — Изменение данных

  • Оператор Update
  • Операторы TCL — commit и rollback
  • Понятие ограничений и работа с ними

Модуль VI

Лекция 11 — Вставка и удаление данных

  • Оператор Insert
  • Оператор Delete

Лекция 12 — Работа со структурой БД и управление правами доступа

  • Основные операторы DCL. Управление правами доступа
  • Основные операторы DDL. Задание и изменение структуры БД.

Портал «l-a-b-a.com»

Сайт: https://l-a-b-a.comСтоимость: по запросу
«SQL для аналитиков»

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

После прохождения курса слушатель:

  • Научится подключаться к базам данных с помощью среды Microsoft SQL Server Management Studio
  • Узнает, как работать с текстовыми значениями, преобразовывать типы данных и проводить манипуляции с датой и временем
  • Научится использовать команды SELECT, INSERT, UPDATE и DELETE, выставлять ограничения, объединять таблицы и упорядочивать значения для вывода
  • Узнает, как упростить работу с данными с помощью функций агрегаций COUNT, SUM, AVG, MAX, MIN

Программа курса:

  • Основы работы с реляционными базами данных
  • Работа с командой SELECT
  • Функции агрегации
  • Строки и выражения
  • Запросы и подзапросы
  • Функции аналитики
  • Команды модификации языка DML
  • Создание и модификации таблиц
  • Поддержка целостности данных
  • Настройки пользователей в базе данных

По окончании обучения выдается сертификат.

Какими навыками должен обладать SQL-аналитик

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

  • базовое знание SQL;
  • азы работы с большими данными;
  • общие знания о теории баз данных и методологиях проектирования;
  • навыки работы с одной из промышленных СУБД (лучше всего — ClickHouse);
  • аналитический склад мышления.

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

Soft skills будут мало чем отличаться от других областей аналитики:

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

внимание к деталям

Мы имеем дело с огромными массивами данных, поэтому очень важно, чтобы полученные итоги были достоверными и обоснованными
Правило: «Семь раз примерь, один раз отрежь» — применимо к любой аналитической работе, где главный враг — суета, из-за которой можно не заметить важные мелочи;

коммуникабельность. Очень банальный, но актуальный скилл

Приходится общаться с большим количеством специалистов — от бизнес-заказчиков до проектных менеджеров, разработчиков и тестировщиков, доносить до них нужную информацию и делать релевантные запросы; 

навыки презентации. Мало выполнить работу и в совершенстве знать результат, необходимо сжато и доходчиво донести информацию до заказчиков/руководства/коллег. Это универсальный навык, пожалуй, полезный не только в аналитике, но и во многих других профессиях;

работа в команде. Здесь все понятно. Без комментариев.

Oracle Live SQL

Oracle Live SQL focuses more on testing and data exchange. Its disadvantage is that other databases are not supported until you use standard SQL. The tool provides you with a tutorial and complete documentation. It would be good to use the Oracle tool, as it also provides data examples for PHP and Java.

Advantages

  • Provides features such as advanced security, analytics, and compression.
  • It supports Active Data Guards and Database Vault.
  • In addition, it also provides real-time database testing.
  • It provides insight and generates reports using spatial and graphical data.
  • Label security and interactive analytics processing are also supported.

Описание

21 век — век информации. Она окружает нас везде: дома, на работе, в машине, в метро. Информация хранится в базах данных в удобном для компьютера виде. Какие бы приложения вы не тестировали: десктопные, веб или мобильные, банковские системы или игры — вам нужно будет получать информацию из базы данных. Для этого используют специальный язык запросов — SQL (Structure Query Language). Базовые знания SQL сейчас требуют даже на вакансию джуниор-тестировщика.

Тренинг рассчитан на людей, знакомых с основами тестирования и желающих научиться работе с базами данных. Мы расскажем, как устроена база данных, как в ней хранятся данные и как их получать, начиная с самых простых запросов к одной таблице. Те, кто самостоятельно начинал знакомиться с SQL смогут структурировать свои знания, узнать об особенностях работы с разными СУБД и повысить мастерство написания сложных запросов к нескольким таблицам, используя внешние объединения по любым условиям.

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

Программа тренинга

Лекция 0 — Вводная. Строение баз данных и организационные вопросы.

  • Структура тренинга и орг.вопросы.
  • Основы устройства реляционных БД
  • Общие сведения про SQL:
    • Определение, отличие от других языков.
    • История создания SQL
    • Стандарты языка SQL, их плюсы и минусы

Модуль I

Лекция 1 — Исследование БД и структура запроса SELECT.

  • Установка Oracle XE и SQL Workbench
  • Структура запроса Select
  • Простейшие запросы к одной таблице
  • Понятие схемы пользователя
  • Исследование БД с помощью служебных таблиц
  • Применение знаний о структуре БД к тестированию
  • Работа с ошибками при составлении запроса

Лекция 2 — Типы данных, применяемые в SQL

  • Типы для хранения чисел.
  • Типы данных для хранения строк
  • Типы данных для хранения дат и времени
  • Специальные типы данных для хранения xml, идентификаторов и объектов.
  • Типичные ошибки, выявляемые для разных типов данных при тестировании

Модуль II

Лекция 3 — Выбор данных из одной таблицы с разными условиями

  • Задание условий для разных типов данных: числа, даты, строки в разной кодировке.
  • Условие LIKE и использование регулярных выражений в функции regexp_like
  • Значение NULL и работа с ним в запросе. Функция NVL
  • Функции конвертации типов данных
  • Объединение условий

Лекция 4 — Выбор данных из одной таблицы с разными условиями

  • Функции, применяемые для разных типов данных
  • Работа с датами и временем

Модуль III

Лекция 5 — Выбор данных из нескольких таблиц

  • Объединение таблиц в запросе через where
  • Разные типы JOIN
  • Отличия задания условий через Where и Join
  • Задание псевдонимов для таблиц

Лекция 6 — Примеры решения сложных задач на объединение нескольких таблиц

  • Объединение таблиц по неравенству
  • Объединение таблицы с самой собой
  • Типы сортировки
  • Сортировка колонок, содержащих значения NULL
  • Возможные ошибки приложений при добавлении сортировки

Модуль IV

Лекция 7 — Запросы с подзапросами

  • Работа с операторами In и Exist
  • Использование подзапросов

Лекция 8 — Работа с результатами запроса

  • Вывод уникальных значений через DISTINCT
  • Объединение и пересечение результатов. Union, union all, intersect, minus
  • Условный вывод данных с помощью оператора CASE

Модуль V

Лекция 9 — Запросы для анализа данных и подготовки отчетов

  • Операции над выбираемыми данными
  • Группировка данных. Запросы с GROUP BY и HAVING.
  • Отбор значимых для тестирования данных.

Лекция 10 — Изменение данных

  • Оператор Update
  • Операторы TCL — commit и rollback
  • Понятие ограничений и работа с ними

Модуль VI

Лекция 11 — Вставка и удаление данных

  • Оператор Insert
  • Оператор Delete

Лекция 12 — Работа со структурой БД и управление правами доступа

  • Основные операторы DCL. Управление правами доступа
  • Основные операторы DDL. Задание и изменение структуры БД.

SQL Учебник

SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии

Кто такой SQL-аналитик

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

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

SQL-аналитика — это более узкая часть бизнес-аналитики, главным инструментом которой стал SQL, или Structured Query Language — язык запросов, позволяющий работать с данными из БД: «читать» их, извлекать, исследовать, обрабатывать и визуализировать. 

Утрированный пример: представим таблицу (Students_data), которая содержит следующее:

  • ФИО человека (student);
  • номер школы (school);
  • предмет (subject);
  • количество баллов по ЕГЭ (points).

Как только вся информация собрана, мы получаем сущность — готовую таблицу, атрибуты — столбцы, записи — строки. Итого: некая база данных. Нам надо узнать, кто из школьников написал ЕГЭ по математике на 60 и выше баллов. И чтобы вытащить эту информацию из базы, нужно прописать на специфическом языке специальный запрос, который реализует как раз SQL:

select

student

from students_data

where subject = ‘Математика’ and points >=60

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

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

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

Портал «otus.ru»

Сайт: https://otus.ruСтоимость: 60 000 р.
«Базы данных»

Курс предназначен для разработчиков и администраторов, готовых освоить работу с базами данных. Продолжительность: 6 месяцев, 4 академических часа в неделю.

Курс включает в себя все основные и популярные БД, которые могут пригодиться разработчику: PostgreSQL, MySQL, Redis, MongoDB, Cassandra и т.д.

Курс обеспечивает глубокое погружение в СУБД, чтобы проектировать базы данных так, чтобы впоследствии не приходилось тушить пожары в результате не оптимально заложенных основ.

Программа:

  • Модуль 1. Сущности и связи
  • Модуль 2. MySQL
  • Модуль 3. PostgreSQL
  • Модуль 4. NoSQL (Redis, Tarantool, MongoDB, Cassandra)
  • Модуль 5. Общие задачи и проблемы
  • Модуль 6. Проект итоговый

По итогам защиты проекта выдается сертификат о прохождении обучения.

№ 2. Среднее значение и ранжирование с оконной функцией (несколько частей)

Часть 1

Контекст

  depname  | empno | salary |     
-----------+-------+--------+
 develop   |    11 |   5200 | 
 develop   |     7 |   4200 | 
 develop   |     9 |   4500 | 
 develop   |     8 |   6000 | 
 develop   |    10 |   5200 | 
 personnel |     5 |   3500 | 
 personnel |     2 |   3900 | 
 sales     |     3 |   4800 | 
 sales     |     1 |   5000 | 
 sales     |     4 |   4800 | 

Задача:

  depname  | empno | salary | avg_salary |     
-----------+-------+--------+------------+
 develop   |    11 |   5200 |       5020 |
 develop   |     7 |   4200 |       5020 | 
 develop   |     9 |   4500 |       5020 |
 develop   |     8 |   6000 |       5020 | 
 develop   |    10 |   5200 |       5020 | 
 personnel |     5 |   3500 |       3700 |
 personnel |     2 |   3900 |       3700 |
 sales     |     3 |   4800 |       4867 | 
 sales     |     1 |   5000 |       4867 | 
 sales     |     4 |   4800 |       4867 |

Решение:

Часть 2

Задача:

  depname  | empno | salary | salary_rank |     
-----------+-------+--------+-------------+
 develop   |    11 |   5200 |           2 |
 develop   |     7 |   4200 |           5 | 
 develop   |     9 |   4500 |           4 |
 develop   |     8 |   6000 |           1 | 
 develop   |    10 |   5200 |           2 | 
 personnel |     5 |   3500 |           2 |
 personnel |     2 |   3900 |           1 |
 sales     |     3 |   4800 |           2 | 
 sales     |     1 |   5000 |           1 | 
 sales     |     4 |   4800 |           2 | 

Решение:

Задание «Компьютерный магазин»

SQL table 2. Используя сервис http://dbdesigner.net/ и команду создайте при помощи языка SQL базу данных «Компьютерный магазин» со следующими таблицами и связями между их полями:

Дополните код (для таблиц и ):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE `Product` (
	`Номер` INT(11) NOT NULL AUTO_INCREMENT,
	`Производитель` VARCHAR(35),
	`Тип` VARCHAR(35),
	PRIMARY KEY (`Номер`)
);
 
CREATE TABLE `Printer` (
	`code` BIGINT NOT NULL,
	`Номер` BIGINT NOT NULL,
	`Цветной` bool,
	`Тип` VARCHAR(24) DEFAULT 'Лазерный',
	`Цена` INT,
	PRIMARY KEY (`code`)
);

* Сохраните сгенерированный код базы данных для дальнейшей работы ()

SQL table 3. Заполните созданную базу данных, чтобы в дальнейшем иметь возможность создавать запросы к ней. Для заполнения используйте сервис :
— создайте новую базу данных;
— через SQL создайте таблицы базы данных, использовав код из предыдущего задания (вставить код в окно для SQL запросов интерфейса phpMyAdmin);
— заполните таблицы данными:Таблица Продукт:

Номер Производитель Тип
1 Америка Компьютер
2 Африка Компьютер
3 Россия Компьютер
4 Россия Принтер
5 Япония Принтер
6 Америка Компьютер
7 Россия Ноутбук
8 Китай Принтер
9 Америка Компьютер
10 Китай Ноутбук

Таблица PC:

code Номер Скорость Память HD СкоростьСчит Цена
1 1 1100 1000 500 52 20000
2 2 1500 2000 500 52 25000
3 3 1500 2000 1000 49 28000
4 6 2000 2500 1000 52 29000
5 9 2000 3000 1000 52 32000

Таблица Ноутбук:

code Номер Скорость Память HD Экран Цена
1 7 2000 2000 512 19 25000
2 10 2000 3000 1000 24 35000

Таблица Принтер:

code Номер Цветной Тип Цена
1 4 1 Лазерный 15000
2 5 Струйный 2000
3 8 Лазерный 4000

* При отсутствии возможности работы с phpMyAdmin, воспользуйтесь сервисом sql fiddle.

Вывод статистики с накоплением по дате

Предположим, что у нас имеется склад с некими товарами. Товары периодически поступают, и нам бы хотелось видеть в отчете остатки товаров по дням. Поскольку данные о наличии товаров необходимо накапливать, то мы введем пользовательскую переменную. Но есть одно небольшое “но”. Мы не можем использовать в запросе переменные пользователя и группировку данных одновременно (вернее можем, но в итоге получим, не то, что ожидаем), но мы можем использовать вложенный запрос, вместо явно указанной таблицы. Данные в таблице будут предварительно сгруппированы по дате. И уже затем на основе этих данных мы произведем расчет статистики с накоплением.

На первом этапе требуется установить переменную и присвоить ей нулевое значение:

SET @cvalue = 0

В следующем запросе, мы созданную ранее переменную и применим:

SELECT products.Name AS Name, (@cvalue := @cvalue + Orders) as Orders, 
Date FROM (SELECT ProductID AS ProductID, SUM(Orders) AS Orders, 
DATE(date) AS Date FROM statistics WHERE ProductID = '1' GROUP BY date) 
AS statistics JOIN products ON statistics.ProductID = products.id

Итоговый отчет:

+-----------------------+--------+------------+
| Name                  | Orders | Date       |
+-----------------------+--------+------------+
| Процессоры Pentium II |      1 | 2014-09-04 |
| Процессоры Pentium II |      2 | 2014-09-12 |
| Процессоры Pentium II |      4 | 2014-09-14 |
| Процессоры Pentium II |      6 | 2014-09-15 |
+-----------------------+--------+------------+

Получить используемую в примерах базу данных можно здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector