Упражнение – вопросы для интервью

Здравствуйте и вновь добро пожаловать на занятия по теме «SQL для маркетологов».

В этой лекции мы рассмотрим ряд различных упражнений. Эти упражнения созданы наподобие вопросов, которые вам могут задать на собеседовании при приёме на работу, связанную с использованием SQL. Кстати, эти вопросы относятся к загруженным нами ранее данным – таблиц ordered_items и customers.

Итак, первый вопрос – каковы все уникальные предметы, купленные жителями Орегона?

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

Ответ таков:

select distinct(item)

from ordered_items

  inner join customers

  on ordered_items.customerid = customers.customerid

and state = ‘Oregon’;

Второй вопрос – какой предмет является самым популярным среди жителей Колорадо?

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

Ответ следующий:

select item, sum(quantity) as cnt

from ordered_items

  inner join customers

  on ordered_items.customerid = customers.customerid

and state = ‘Colorado’

group by item

order by cnt desc;

Тут для суммы количества предметов использован идентификатор cnt. Некоторые применяют слова вроде count или sum, но так делать нельзя, поскольку они являются функциями SQL. Поэтому придётся использовать альтернативы вроде cnt.

Третий вопрос – в какой области было продано больше всего предметов?

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

Ответ:

select state, count(*) as cnt

from ordered_items

  inner join customers

  on ordered_items.customerid = customers.customerid

and state = ‘Colorado’

group by state

order by cnt desc;

А теперь попробуем запустить эти запросы в командной строке, чтобы удостовериться в их работоспособности.

Итак, первый запрос:

select distinct(item) from ordered_items inner join customers on ordered_items.customerid = customers.customerid and state = ‘Oregon’;

Отлично!

Второй запрос:

select item, sum(quantity) as cnt from ordered_items inner join customers on ordered_items.customerid = customers.customerid and state = ‘Colorado’ group by item order by cnt desc;

Получаем ожидаемый ответ.

И последний запрос:

select state, count(*) as cnt from ordered_items inner join customers on ordered_items.customerid = customers.customerid and state = ‘Colorado’ group by state order by cnt desc;

Отлично, и здесь ожидаемый ответ.

Спасибо, что уделили время на изучение этого курса!

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: