假设access_log表有src_ip、user_agent、url三个字段,每一次请求产生一条记录(行),现在想统计访问量前10的IP、访问量count及访问量占比percent

第一种方式:直接从多个表查询数据
SELECTa.src_ip,a.count,round(a.count * 100 / b.total, 2) as percent
FROM(SELECTsrc_ip,count() as countFROMaccess_logGROUP BYsrc_ipORDER BYcount DESCLIMIT10) a,(SELECTcount() as totalFROMaccess_log) b
第二种方式:子查询作为分母
SELECTsrc_ip,count() as count,round(count * 100 /(SELECTcount() as totalFROMaccess_log),2) as percent
FROMaccess_log
GROUP BYsrc_ip
ORDER BYcount DESC
LIMIT10


















