mysql中存在一张表dsg_desensitive_statics表,三个字段,corp_code(省份编码),col_name(敏感字段名称),visit_count(敏感字段访问次数),然后如何查出每个省份敏感字段访问的前5名
时间: 2024-02-26 08:56:27 浏览: 119
sql学习 识别低效执行计划5_表的访问次数需敏感.sql
可以使用以下 SQL 语句来查询每个省份敏感字段访问的前5名:
```
SELECT corp_code, col_name, visit_count
FROM (
SELECT corp_code, col_name, visit_count,
ROW_NUMBER() OVER (PARTITION BY corp_code ORDER BY visit_count DESC) AS rank
FROM dsg_desensitive_statics
) subquery
WHERE rank <= 5
ORDER BY corp_code, rank
```
其中,`dsg_desensitive_statics` 表是存储敏感字段访问次数的表,包含以下字段:`corp_code`(省份编码)、`col_name`(敏感字段名称)和 `visit_count`(敏感字段访问次数)。这个 SQL 语句使用了子查询和窗口函数,首先在子查询中按照省份分组,按照访问次数从高到低排序,并使用 `ROW_NUMBER()` 函数为每个敏感字段计算排名。然后在外层查询中,选择排名前5的敏感字段,并按照省份和排名排序返回结果。
阅读全文