2011-05-31 38 views
3

我有一個名爲NET_REPORT具有以下字段(其中很多)表:幫助與SQL查詢 - 極品場的最高總和

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的所有記錄中,然後找到所有這些總計的最大值。 任何想法?
謝謝。

+0

這是MS-SQL嗎? – 2011-05-31 01:52:22

回答

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 


參考

+0

謝謝,這很好,最後插入了DESC。 – 2011-05-31 02:55:44

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

看起來不錯,但是當我嘗試將它全部放入sqlcmd語句時,出現語法錯誤。聲明爲: sqlcmd -S ctmdemo01 \ CTMEM -d EM640 -U emuser -P empass -Q「SELECT MAX(JobsTotal)as MaximumJobs FROM(SELECT SUM(JOBS)AS JobsTotal FROM NET_REPORT GROUP BY NET_DATE)」 語法錯誤爲「(。」 – 2011-05-31 02:18:15

+0

「錯誤的語法實際上,當我使用交互式SQL時,我遇到了同樣的錯誤 – 2011-05-31 02:29:15

+0

@Rachel和Gavin:必須爲子查詢提供別名 – 2011-05-31 04:21:27

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 

如果您正在尋找擁有最獨特的就業機會流向上的日期,然後添加以下到上述查詢

order by 2 DESC limit 1 

2的順序是指序列「NumberOfJobs」 ,限制1只返回最終「已排序」結果集的第一個條目。