我有一组三个查询,它们返回我喜欢的确切数据:

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

我已经看过自我联接,尝试仅在a.date = b.date的sum(cputime)进行联接,但这没有用。

我真的以为自我联接会从我在SE上阅读的所有帖子中做到这一点,但是我找不到一个通过(usercode,date(stop time))将复合组因素考虑在内的情况。

  ask by Tom Schaefer translate from so

本文未有回复,本站智能推荐: