次のクエリで avg(time(4)) を行うにはどうすればよいですか。
select top 10 avg(e.Duration) from TimeTable e
次のエラーが表示されます。
avg 演算子のオペランド データ型 time は無効です。
期間は次のような time(4) 型です。
Duration
-------------
00:00:10.0000
次のクエリで avg(time(4)) を行うにはどうすればよいですか。
select top 10 avg(e.Duration) from TimeTable e
次のエラーが表示されます。
avg 演算子のオペランド データ型 time は無効です。
期間は次のような time(4) 型です。
Duration
-------------
00:00:10.0000
を使用DateDiff( ms, '00:00:00', e.Duration )
して、時間を整数のミリ秒に変換できます。それを集計に使用してから、結果を元に戻しCast( DateAdd( ms, 1234, '00:00:00' ) as Time )
ます。
HABOの回答を改善する:
select top 10
Cast(DateAdd( ms,avg(DateDiff( ms, '00:00:00', e.Duration)), '00:00:00' ) as time) as 'avg duration'
from TimeTable e
time
メソッドの無効なタイプのようですavg()
。有効なデータ型のリストについては、 こちらを参照してください。
また、これには値のグループが必要なようです。これtop 10
により、現在のクエリでの必要性がなくなります。