帮助SQL查询 - 需要具有最高总和的字段

时间:2011-05-31 01:27:24

标签: sql

我有一个名为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的最大作业。相反,我需要在JOBS字段中为每个NET_DATE的所有记录添加值,然后找到所有这些总计的最大值。 任何想法?
感谢。

3 个答案:

答案 0 :(得分:2)

简单版

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


参考

答案 1 :(得分:1)

SELECT MAX(JobsTotal) as MaximumJobs
FROM (
    SELECT SUM(JOBS) AS JobsTotal
    FROM NET_REPORT
    GROUP BY NET_DATE
) A

答案 2 :(得分:1)

我认为你想要的是在给定日期“工作多少”的不同工作。关于你的计数和求和,我也添加了这些,只保留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只返回最终“有序”结果集的第一个条目。