один совет. если вам нужна помощь от людей, всегда включайте DDL для своего набора данных. Нечестно ожидать, что люди сделают это за вас. (В этом случае я сделал)
create table sandbox.songs
(key varchar,
track_id number,
dt date);
insert into sandbox.songs
values
('asd', 12312, '12/02/2020'),
('fds', 12323, '12/05/2020'),
('asd', 11000, '04/05/2020'),
('fds', 92823, '04/07/2020'),
('asd', 11000, '3/05/2020'),
('fds', 12323, '12/05/2020'),
('asd', 92834, '3/05/2020');
ВОПРОС 1
select
key,
count(0),
sum(case when dt < current_date - 30 then 1 else 0 end) as older_than_30,
sum(case when dt >= current_date - 30 then 1 else 0 end) as within_30
from sandbox.songs group by key;
[введите описание изображения здесь] [1]
ВОПРОС 2
track_id,
count(0)
from sandbox.songs
group by track_id
order by count(0) desc
limit 3;
[enter image description here][2]
[1]: https://i.stack.imgur.com/CeDqw.png
[2]: https://i.stack.imgur.com/sdKV0.png