用rownumber求2018年4月每个时段的,pv、uv 数量、按照uv转化率取top5.
时间: 2023-12-10 17:38:07 浏览: 73
row_number.rar_SQL中row_number用法_number
假设你的数据表为 table_name,包含以下字段:datetime(日期时间)、pv(页面访问量)、uv(访问用户数),则可以使用以下 SQL 语句来实现:
```
SELECT
datetime,
CASE
WHEN HOUR(datetime) >= 0 AND HOUR(datetime) < 6 THEN '0:00~6:00'
WHEN HOUR(datetime) >= 6 AND HOUR(datetime) < 12 THEN '6:00~12:00'
WHEN HOUR(datetime) >= 12 AND HOUR(datetime) < 18 THEN '12:00~18:00'
ELSE '18:00~24:00'
END AS time_range,
SUM(pv) AS pv,
COUNT(DISTINCT uv) AS uv,
COUNT(DISTINCT uv) / SUM(pv) AS uv_conversion_rate,
ROW_NUMBER() OVER (PARTITION BY datetime ORDER BY COUNT(DISTINCT uv) / SUM(pv) DESC) AS uv_conversion_rank
FROM
table_name
WHERE
YEAR(datetime) = 2018 AND MONTH(datetime) = 4
GROUP BY
datetime, time_range
ORDER BY
datetime, time_range, uv_conversion_rate DESC
```
该 SQL 语句先根据时间段计算每个时段的 pv、uv 数量和 uv 转化率,然后按照 datetime、time_range 和 uv_conversion_rate 进行排序,并使用 ROW_NUMBER() 函数计算每个时段的 uv 转化率排名。最后,使用 WHERE 子句筛选出 2018 年 4 月的数据,并使用 GROUP BY 子句对每个时段进行聚合。
阅读全文