'Get weekly Average for last 90 days in SQL

i have a table that has session id and profile_type, and dt (2021-01-05 = format) as column headers. i want to run a query to get the average amount of sessions per week for the last 90 days for each profile type. i am currently counting session ids to get total session count. so far i have something like this and i am getting errors when i run:

Select DATE_TRUNC('week'   , dt) AS week ,
profile_type, 
avg(e.session_count)
from    
(Select profile_type, 
 count(session_id) over 
 (partition by profile_type) as session_count
 from XXX ) e
where dt > current_date - 90


Solution 1:[1]

Try

with week_count as (
    Select 
    profile_type,
    DATE_TRUNC('week'   , dt) AS week_no, 
    count(profile_type) as cnt
    from xxx
    group by 1,2
)
select
profile_type,
week_no
avg(cnt)
from week_count
group by 1,2

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 NickW