2012-01-06 7 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

あなたの質問は理解しにくいです。テストデータ(メークアップデータなど)と、結果セットをクエリ後にどのように表示するかを指定してください。 –

+0

'sum'と 'count'は同じ値になります...もし10を数えれば、10の合計は... 10 ... – Phill

答えて

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

countname、name、sumcountを表示したいと思います。どうやってするか ? –

+1

@JamSvaあなたが探しているものを理解するのに苦労しています。テストデータとあなたが探している最終結果であなたの質問を編集してください。私はそれからより良いアイデアを得ることができるでしょう。 –

+0

@ JamSva、TotalCountを変数に代入し、元のクエリにそれを含めます。私はこの答えに加える答えをします。 – Reuben

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

+0

'with rollup 'はMS SQLの' order by'節で動作しますか?これはMySQLではないので、追加する前にcount(d.name)の上位の出現数を確保することが難しくなります。 – Reuben

+0

また、MySQLを使用して制限を使用すると、ロールアップ結果がテーブルの最後に行として追加されるため、ロールアップが機能しません。制限を使用する場合は、最後の行とロールアップの結果が欠落します。しかし、新しいSQL構文を学ぶためには – Reuben

+0

+1。 – Reuben

関連する問題