Задачи по SQL Часть 1 из 3

Задачи по SQL

sql

 

Часть 1    Часть 2   Часть 3

Таблицы данных для всех задач

Таблица Salespeople (продавцы)

SQL

snum - уникальный номер, назначенный каждому продавцу ("номер служащего"); sname - имя продавца; city - расположение продавца (город); comm - комиссионные продавцов в десятичной форме.

Таблица Customers (заказчики)

SQL база

cnum - уникальный номер назначенный каждому заказчику; cname - имя заказчика; city - расположение заказчика (город); rating - код, указывающий уровень предпочтения данного заказчика перед другими. Более высокий номер указывают на большее предпочтение (рейтинг); snum - номер продавца, назначенного этому заказчику (из таблицы Продавцов)

Таблица Orders (заказы)

задачи SQL

onum - уникальный номер данный каждому приобретению; amt - значение суммы приобретений; odate - дата приобретения; cnum - номер заказчика делающего приобретение (из таблицы Заказчиков); snum - номер продавца продающего приобретение (из таблицы Продавцов)

Условия задач 

  1. Напишите команду SELECT, которая бы вывела номер заказа, сумму, и дату для всех строк из таблицы Заказов.

  2. Напишите запрос, который вывел бы все строки из таблицы Заказчиков, для которых номер продавца равен 1001.

  3. Напишите запрос, который вывел бы таблицу со столбцами в следующем порядке: city, sname, snum, comm.

  4. Напишите команду SELECT которая вывела бы оценку (rating), сопровождаемую именем каждого заказчика в San Jose.
  5. Напишите запрос, который вывел бы значения snum всех продавцов в текущем порядке из таблицы Заказов без каких бы то ни было повторений

  6. Напишите запрос, который отображает все заказы со значениями суммы выше чем $1,000.

  7. Напишите запрос, который находит  sname и city для всех продавцов в Лондоне с комиссионными выше 0.1.

  8. Напишите запрос к таблице Заказчиков для отображения всех заказчиков с рейтингом не более 100, если они не находятся в Риме.

  9. Что будет выведено в результате запроса:
  10. Что будет выведено в результате запроса:
  11. Как можно проще переписать запрос:
  12. Напишите два запроса которые могли бы вывести все заказы за 3 или 4 Октября 2015.
  13. Напишите запрос который выберет всех заказчиков обслуживаемых продавцами Peel или Motika.
  14. Напишите запрос, который может вывести всех заказчиков, чьи имена начинаются с буквы попадающей в диапазон от A до G.
  15. Напишите запрос который выберет всех пользователей чьи имена начинаются с буквы C.
  16. Напишите запрос который выберет все порядки имеющие нулевые значения или NULL в поле amt (сумма).
  17. Напишите запрос, который сосчитал бы все суммы приобретений на 3 Октября.
  18. Напишите запрос, который сосчитал бы число различных не-NULL значений поля city в таблице Заказчиков.
  19. Напишите запрос, который выбрал бы наименьшую сумму для каждого заказчика.
  20. Напишите запрос, который бы выбирал заказчиков в алфавитном порядке, чьи имена начинаются с буквы G.
  21. Напишите запрос, который выбрал бы высшую оценку в каждом городе.
  22. Напишите запрос, который сосчитал бы число заказчиков, регистрирующих каждый день свои заказы. (Если продавец имел более одного заказа в данный день, он должен учитываться только один раз.)
  23. Предположим что каждый продавец имеет 12% комиссионных. Напишите запрос к таблице заказов, который мог бы вывести номер заказа, номер продавца, и сумму комиссионных продавца для этого заказа.
  24. Напишите запрос к таблице Заказчиков который мог бы найти высшую оценку в каждом городе. Вывод должен быть в такой форме: For the city [city], the highest rating is: [rating].
  25. Напишите запрос, который выводил бы список заказчиков в нисходящем порядке. Вывод поля оценки (rating) должен сопровождаться именем заказчика и его номером.
  26. Напишите запрос, который бы вывел список номеров заказов, сопровождающихся именем заказчика, который создавал эти заказы.
  27. Напишите запрос, который бы выдавал имена продавца и заказчика для каждого заказа после номера заказа.
  28. Напишите запрос, который бы выводил всех заказчиков, обслуживаемых продавцом с комиссионными выше 12%. Выведите имя заказчика, имя продавца и ставку комиссионных продавца.
  29. Напишите запрос, который вычислил бы сумму комиссионных продавца для каждого заказа заказчика с оценкой выше 100.
  30. Напишите запрос, который бы вывел все пары продавцов, живущих в одном и том же городе. Исключите комбинации продавцов с ними же, а также дубликаты строк, выводимых в обратным порядке
  31. Напишите запрос, который вывел бы все пары порядков по данным заказчикам, именам этих заказчиков, и исключал дубликаты из вывода, как в предыдущем вопросе.
  32. Напишите запрос, который вывел бы имена (cname) и города (city) всех заказчиков с такой же оценкой (rating) как у Hoffmanа. Напишите запрос, использующий поле cnum Hoffmanа, а не его оценку, так чтобы оно могло быть использовано, если его оценка вдруг изменится.
  33. Напишите запрос, который бы использовал подзапрос для получения всех заказов для заказчика с именем Cisneros. Предположим, что вы не знаете номера этого заказчика, указываемого в поле cnum.
  34. Напишите запрос, который вывел бы имена и оценки всех заказчиков, которые имеют усредненные заказы.
  35. Напишите запрос, который бы выбрал общую сумму всех приобретений в порядках для каждого продавца, у которого эта общая сумма больше, чем сумма наибольшего заказа в таблице.
  36. Напишите команду SELECT, использующую подзапрос, которая выберет имена и номера всех заказчиков с максимальными для их городов оценками.
  37. Напишите два запроса, которые выберут всех продавцов (по их имени и номеру) которые, в своих городах имеют заказчиков, которых они не обслуживают. Один запрос — с использованием объединения и один — с подзапросом.

смотрите еще серию задач 43 задачи по SQL

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

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