まず、タリーテーブルを作成する必要があります。そのためにmany methodsがあります。タリー表を使用して、ソース表の最小値と最大値の間のすべての値に番号を付けます。最小値と最大値の間のすべての数値を取得したら、テーブルのバージョンにLEFT JOIN
が必要です。ここでは、COUNT()
とGROUP BY
を使用して、各値の表示回数を合計します。
以下の表Aは、集計表です。 表Bは、集約されたソース表です。
DECLARE @MinValue INT
DECLARE @MaxValue INT
SET @MinValue = (SELECT MIN(Value) FROM dbo.MyTable)
SET @MaxValue = (SELECT MAX(Value) FROM dbo.MyTable)
SELECT number as Value, COALESCE(Count,0) AS Count
FROM (
SELECT DISTINCT number
FROM master..spt_values
WHERE number
BETWEEN @MinValue AND @MaxValue
) AS A
LEFT JOIN (
SELECT Value, COUNT(Value) AS Count
FROM dbo.MyTable
GROUP BY Value
) AS B
ON A.number = B.value
あなたはこれまで何をしようとしましたか? – Donnie
フィールド値の既存の値を取得することはできますが、その間にすべての値を設定する方法はわかりません。次に...カウントを取得する方法はありません... –
値7と8はどこから来ますか?また、使用しているデータベースで質問にタグを付けてください。 –