これまでTSQLを使用したことはありませんが、とにかくSOデータダンプを調べたいと思いました。したがって、これはおそらく新人の質問です。私は答えを検索しようとしましたが、私がやろうとしていることの専門用語がわかりません。適切なキーワードがない場合にのみ、検索は非常に優れています。
私の目標は、スコアが0の質問の数、スコアが1の質問の数、スコアが2の質問の数などを調べることです。私はそれらの個々の数を見つけるためにクエリを書くことができます、問題ありません。ただし、ループを含むクエリを実行できるようにしたいと思います。これが私が今まで使っているものです:
DECLARE @counter int
SET @counter = 0
WHILE @counter < 3
BEGIN
SELECT
COUNT(*)
FROM
Posts
WHERE
PostTypeId = 1
AND
Score = @counter
SET @counter = @counter + 1
END
(編集:最終的な目標は、[0、3]から[-100、1000]または既存のすべての質問に答えるために必要なものに拡張することです)明らかに、私の問題は、ループの各サイクルでカウントを取得していることですそしてそれで何もしません。@counter
現在、私が得た結果は、最初に設定されたものの数だけです。反復回数は関係ありません。結果をどこかに保存して、次のように表示することは可能ですか?
+ ------- + -------------------------------- + | スコア| NumberOfQuestionsWithThatScore | + ------- + -------------------------------- + | -10 | 111 | + ------- + -------------------------------- + | -9 | 0 | + ------- + -------------------------------- + | -8 | 248 | + ------- + -------------------------------- + | ... | ... | + ------- + -------------------------------- +
(編集:適度にクリアな表示で問題ありません。上記の表は単なるサンプルです。編集2:継続的な混乱を解消するためにテーブルのデザインを変更しました)
もしそうなら、これは何と呼ばれ、どのように行われますか?