17,086
社区成员
发帖
与我相关
我的任务
分享
select t1.domain, ROUND((30d/total)*100,2) as percent from
(select sum(count) as 30d, domain from domain_count
where DATEDIFF(curdate(),date)<1 group by domain) t1,
(select sum(count) as total, domain from domain_count group by domain) t2
where t1.domain = t2.domain
order by percent desc limit 50
[/quote]
select domain,
sum(count) /
(select sum(count) from domain_count t2 where t1.domain = t2.domain)
from domain_count t1
where date > sysdate - 30
group by domain
select t1.domain, ROUND((30d/total)*100,2) as percent from
(select sum(count) as 30d, domain from domain_count
where DATEDIFF(curdate(),date)<1 group by domain) t1,
(select sum(count) as total, domain from domain_count group by domain) t2
where t1.domain = t2.domain
order by percent desc limit 50
--嵌套查询一个不是可以了么
select domain,
sum(count) num30,
sum(count) /
(select sum(count) from domain_count d where d.domain = t.domain) * 100 "rate30(%)"
from domain_count t
where "date" between sysdate - 30 and sysdate
group by domain;
--后面自己order by查出前50个