用sql求2018年4月每个时段的,pv、uv 数量、按照uv转化率取top5. -- uv 转化率 = 转化人数/uv数量 ,假设现在转化人数是 1
时间: 2023-07-15 08:15:32 浏览: 89
假设有一个名为 log_table 的日志表,包含以下字段:id、timestamp、user_id、page_id。其中,id 为日志记录的唯一标识符,timestamp 为日志记录的时间戳,user_id 为访问用户的唯一标识符,page_id 为访问页面的唯一标识符。
可以使用以下 SQL 查询语句来实现:
```
SELECT
DATE_TRUNC('hour', timestamp) AS hour,
COUNT(DISTINCT user_id) AS uv,
COUNT(*) AS pv,
COUNT(CASE WHEN user_id = 'conversion_user_id' THEN 1 END) AS conversion
FROM
log_table
WHERE
DATE_TRUNC('month', timestamp) = '2018-04-01'
GROUP BY
hour
ORDER BY
conversion / COUNT(DISTINCT user_id) DESC,
uv DESC
LIMIT
5;
```
该查询语句将日志表中的记录按照小时进行聚合,并计算每个小时的 PV 和 UV 数量,以及转化人数。其中,DATE_TRUNC 函数用于将时间戳的粒度调整到小时级别;COUNT(DISTINCT user_id) 表示计算唯一用户数量;COUNT(CASE WHEN user_id = 'conversion_user_id' THEN 1 END) 表示计算转化人数,其中 'conversion_user_id' 为转化用户的唯一标识符。最后,使用 ORDER BY 子句将结果按照 UV 转化率和 UV 数量进行排序,并使用 LIMIT 子句取出前 5 条记录。
阅读全文