2012-01-06 70 views
1

如何計算SQL Server中的計數值?如何計算SQL Server中的計數值?

我有表1.我想總結數值。

如何做到這一點?

SELECT Top 10 count(d.name) as countname,d.name as name ,sum(count(d.name)) as sumcount 
FROM table 1 as d 
group by d.name order by count(d.name) desc 

我想顯示countnamenamesumcount。怎麼做 ?

+2

您的問題很難理解。請提供測試數據(如組成數據),以及您希望結果集在查詢後的樣子。 – 2012-01-06 04:07:51

+0

'總計'和'計數'將具有相同的值...如果您計算10,總和10是... 10 ... – Phill 2012-01-06 04:42:16

回答

4

不知道我理解你的問題,但如果你只是希望得到所有count(d.name)值的總和,那麼這將爲你做的:

select sum(countname) as TotalCount 
from 
(
    SELECT Top 10 
     count(d.name) as countname, 
     d.name as name 
    FROM [table 1] as d 
    group by d.name 
    order by count(d.name) desc 
)a 
+0

我想要顯示計數名稱,名稱,總計數。怎麼做 ? – 2012-01-06 04:04:40

+1

@JamSva我很難理解你在找什麼。請使用測試數據和您要查找的最終結果編輯您的問題。我可以從中獲得更好的想法。 – 2012-01-06 04:05:52

+0

@JamSva,將TotalCount賦值給一個變量,然後將其包含在原始查詢中。我會做一個答案,增​​加這個答案。 – Reuben 2012-01-06 05:18:36

0

擴大所提供的答案通過@Shark,MySQL的語法將如下所示:

set @TotalCount = (select sum(countname) from (
    select count(d.name) as countname, d.name as name 
    from table 1 as d 
    group by name 
    order by countname desc 
    limit 10 
) a); 

select count(d.name) as countname, d.name as name, @TotalCount 
FROM table 1 as d 
group by name 
order by countname desc 
limit 10; 

您可能需要查找MS SQL語法用於設置局部變量和限制。

2

add with rollup到您的查詢結果

+0

'rollup'與MS SQL中的'order by'子句一起工作嗎?它不在MySQL中,這使得在添加count(d.name)之前很難確保您有最多的count(d.name)。 – Reuben 2012-01-06 04:58:47

+0

另外,在MySQL和限制的使用情況下,彙總不起作用,因爲彙總結果作爲行添加到表的末尾。如果您使用限制,則會錯過最後一行以及彙總的結果。 – Reuben 2012-01-06 05:16:18

+0

+1用於學習一些新的SQL語法,但是。 – Reuben 2012-01-06 05:31:36