帮我写一段sql,有一个表,表名为log,接口数据所在字段名为request uri,域名所在字段名为host,选择域名的情况下接口数据及占比,域名会随机变化,导致数据不准,根据这个条件做出正确的sql语句
时间: 2023-12-23 12:02:15 浏览: 18
假设您想要查询域名为example.com的所有接口数据及占比,可以使用以下SQL语句:
```
SELECT `request uri`, COUNT(*) AS `count`, COUNT(*) / (SELECT COUNT(*) FROM `log` WHERE `host` = 'example.com') AS `percentage`
FROM `log`
WHERE `host` = 'example.com'
GROUP BY `request uri`
ORDER BY `count` DESC;
```
这个查询语句首先过滤出域名为example.com的所有日志记录,然后按照request uri字段进行分组,并计算每个request uri出现的次数和占比,最后按照出现次数倒序排序。
请注意,这个查询语句只适用于单个域名,如果您需要查询多个域名的接口数据及占比,可以考虑在WHERE条件中使用IN关键字,如:
```
SELECT `host`, `request uri`, COUNT(*) AS `count`, COUNT(*) / (SELECT COUNT(*) FROM `log` WHERE `host` IN ('example.com', 'example2.com')) AS `percentage`
FROM `log`
WHERE `host` IN ('example.com', 'example2.com')
GROUP BY `host`, `request uri`
ORDER BY `count` DESC;
```
这个查询语句可以查询出多个域名的接口数据及占比,并按照出现次数倒序排序。