2011-09-30 37 views
0

的最大計數在使用下面的代碼:得到每負載#,只有前20

SELECT  SUM(LD_NUM) AS Expr1, LD_NUM 
FROM   Bale 
GROUP BY LD_NUM 

returns Expr1 = 74987 and LD_NUM = 4411 
returns Expr1 = 61768 and LD_NUM = 4412 
returns Expr1 = 75021 and LD_NUM = 4413 

等。

如果我四千四百十一分之七萬四千九百八十七= 17,這給了我每LD_NUM

計數

有沒有方法可以返回關係(17,4411),(14,4412),(17,4413) ,並通過'Expr1'獲得或排序前20位?

希望這可以從此。

+0

將問題重新標記爲'sql-server'。如果我的假設是錯誤的,請隨時根據需要進行更改,但請不要使用'ms'標籤。 –

回答

1
SELECT TOP 20 SUM(LD_NUM) AS Expr1, LD_NUM, COUNT(LD_NUM) AS RecordCount 
    FROM Bale 
    GROUP BY LD_NUM 
    ORDER BY Expr1 DESC 

不知道你是否需要SUM用於任何其他目的。這可能是這麼簡單:

SELECT TOP 20 LD_NUM, COUNT(LD_NUM) AS RecordCount 
    FROM Bale 
    GROUP BY LD_NUM 
    ORDER BY RecordCount DESC 
1

你不需要做任何的計算才能獲得計數,

count(LD_NUM) 

是所有的需要

0

試試這個

SELECT TOP 20 Expr1/LD_NUM,LD_NUM 
FROM 
(
    SELECT  SUM(LD_NUM) AS Expr1, LD_NUM 
    FROM   Bale 
    GROUP BY LD_NUM 
) xx 
ORDER BY xx.expr1