В каждом вопросе есть только
один правильный ответ, при решении считать, что все запросы синтаксически корректны.
1) В таблице revenue три колонки:
- event_date - дата
- user_id - уникальный id пользователя
- revenue - выручка, полученная от этого пользователя в этот день
Какую из колонок нужно добавить в этот запрос,
select event_date, user_id, revenue, <?>
from revenue
order by event_date desc, user_id
чтобы в ней на каждый день содержалась доля выручки пользователя в этот день от выручки того же пользователя в предыдущий день?
Для каждой комбинации user_id, event_date есть только одно значение revenue, в данных нет Null-ов.
a) revenue/lag(revenue) over(order by user_id, event_date),
b) revenue/lag(revenue) over(partition by user_id order by event_date),
c) revenue/lag(revenue) over(order by event_date),
d) revenue/lag(revenue) over(partition by user_id, event_date order by user_id,event_date)
2) select distinct a, b, c, sum(d) as revenue
from table
group by a, b, c
Сколько строк вернет данный запрос, если такой же запрос без «distinct» вернет 600 строк, а в столбце revenue содержится 117 уникальных значений?
a) 483
b) 600
c) 117
d) 561
1) Какой запрос вернет самое большое число?
Для справки: (A right join B) эквивалентно (B left join A).
a) select count(distinct first.counter_column)
from first
left join second
on first.join_key = second.join_key
where second.filter_column >= 5
b) select count(distinct first.counter_column)
from first
left join second
on first.join_key = second.join_key
and second.filter_column >= 5
c) select count(distinct first.counter_column)
from first
right join second
on first.join_key = second.join_key
where second.filter_column >= 5
d) select count(distinct first.counter_column)
from first
right join second
on first.join_key = second.join_key
and second.filter_column >= 5