我有一组三个查询返回我喜欢的确切数据:
set @myDate = '2013-04-15';
set @dailyCPU = (select sum(cputime) from eojeot where date(stoptime) = @myDate);
select usercode, date(stoptime) as theDate,
sum(cputime) as 'Total CPU Secs',
sum(elapsedtime) as 'Total Elapsed Secs',
(sum(cputime)/@dailyCPU) * 100 as pctCPU
from eojeot
where date(stoptime) = @myDate
group by usercode;
这会返回此(我对真实用户进行了模糊处理)
usercode theDate Total CPU Secs pctCPU
FRED 2013-04-15 35873067 0.4069
WILMA 2013-04-15 26122714 0.2963
BARNEY 2013-04-15 234689 0.0027
DINO 2013-04-15 3284851116 37.2593
PEBBLES 2013-04-15 48108320 0.5457
BAMBAM 2013-04-15 23671548 0.2685
KAZOO 2013-04-15 284847 0.0032
我想把它放到一个查询中,这样我就可以添加一个myDate
组。
基本上,我想为特定用户的一天所有cputime求和,并显示当天总cpu时间的百分比。
表格的片段如下:
usercode varchar(17)
cputime bigint(20)
stoptime datetime
我看过自联接试图只加入sum(cputime),其中a.date = b.date,但是没有用。
我真的认为自我加入会从我在SE上阅读的所有帖子中做到这一点,但我找不到复合组中的因素(用户代码,日期(停止时间))。