2

テーブルから中央の行を選択するクエリを作成しました。

with records as(select row_number() over(order by someKey) as 'row', *
                from MyTable)
select *
from records
where row=(select (count(*)/2) from records)

MyTableこれは、空のデータセットを返す行が 1 つしかない場合を除いて、正常に機能します。これは、その特定のケースでは、1/2 がゼロに切り捨てられたためだと思いました。それで試してみceiling( count(*)/2 )ましたが、同じ結果が得られました。count(*)/2float 演算を使用するにはどうすればよいですか?

4

1 に答える 1

2

試して、.0ハックして、

CEILING(COUNT(*) / 2.0)
于 2013-02-25T13:52:39.787 に答える