私はこれが簡単な答えでダムの質問であると感じましたが、ここに行きます。DISTINCTを使用せずに、値を変更せずにデータをグループ化する方法は?
DISTINCT
を使用せずに次のデータをグループ化するにはどうすればよいですか? @Table
には5行があり、これは5-9時間のデータを示します。私はちょうどDISTINCT
が好きではありません。
Hr9(0-4を含む)までのすべての時間を表示する必要があるため、テーブルDimTime
に参加しています。 DimTime
にはすべての時間がありますが、15分間隔です。だから、DimTime
は次のようになります。私は、GROUP BY
を使用し、その後、私は、集計関数を持っている必要がある場合は
declare @table table
(
Hour int,
Value int
)
insert into @table select 5, 25
insert into @table select 6, 34
insert into @table select 7, 54
insert into @table select 8, 65
insert into @table select 9, 11
select d.hour, t.hour, sum(value)
from @table t
left join dimtime d on d.hour = t.hour
group by d.hour, t.hour
:
Hour Minute
0 0
0 15
0 30
0 45
1 0
1 15
1 30
1 45
だからここに私のスクリプトです。したがって、私がSUM
を使用すると、すべての値に4を掛けます。集計関数を削除すると、構文エラーが発生します。
@tableの内容はCTE
であるため、CTE
を使用することはできません(ここには含まれていません)。
はここで私は表示に必要な結果だ:
Hour Value
0 null
1 null
2 null
3 null
4 null
5 25
6 34
7 54
8 65
9 11
は私たちにサンプルデータと欲望の結果を表示します。今はあなたが手に入れようとしていることがはっきりしない。 \t [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [**スタート**] http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぶことができます。 –
サンプルデータとtsqlスクリプトが含まれています。唯一欠けているのは返される正確なデータですが、質問のテキストから推測できると仮定しました。 – rbhat
あなたは間違っていると思っていますが、私はあなたが望む結果が何であるかはわかりません。また、何を意味するのかわからない '私はHr9(0-4を含む)までのすべての時間を表示する必要がある' –