问题描述
||
我有一个名为NET_REPORT的表,其中包含以下字段(很多):
JOBS – a number (of jobs)
NET_DATE – date in format YYYY-MM-DD
CODE – a three digit integer (i.e.,001,002,etc).
单个NET_DATE可以有多个记录,每个记录都有不同的代码。
我需要了解所有代码中单个NET_DATE中的最大作业数。
我有查询SELECT MAX(JOBS) as MaximumJobs FROM NET_REPORT
,但这给了我特定NET_DATE和CODE的最大作业数。相反,我需要将每个NET_DATE的所有记录的JOBS字段中的值加在一起,然后找到所有这些总计的最大值。
有任何想法吗?
谢谢。
解决方法
简单版
SELECT sum(JOBS) as JobCount,NET_DATE FROM NET_REPORT GROUP BY NET_DATE
如果要在NET_DATE之前订购,请从最高的工作计数开始
SELECT * FROM
(SELECT sum(JOBS) as JobCount,NET_DATE FROM NET_REPORT GROUP BY NET_DATE) AS A
ORDER BY A.JobCount DESC
如果仅需要具有最高作业计数的NET_DATE
SELECT Top 1 * FROM
(SELECT sum(JOBS) as JobCount,NET_DATE FROM NET_REPORT GROUP BY NET_DATE) AS A
ORDER BY A.JobCount DESC
参考文献
按参考分组
TSQL子查询
, 我认为您想要的是给定日期的“多少个工作”的不同工作的数量。关于您的计数和总和,我也添加了它们,只需保留net_date的单个“ group by”即可。
select
net_date,count( distinct jobs ) as NumberOfJobs,sum( jobs ) as SumOfJobs,max( jobs ) as MaxJobs
from
net_report
group by
net_date
如果您要查找包含MOST个唯一作业的日期,则将以下内容添加到上述查询中
order by 2 DESC limit 1
2的顺序引用序数列“ NumberOfJobs”,限制1仅返回最终“有序”结果集的第一个条目。
, SELECT MAX(JobsTotal) as MaximumJobs
FROM (
SELECT SUM(JOBS) AS JobsTotal
FROM NET_REPORT
GROUP BY NET_DATE
) A