我写了一个查询,从表中选择中间行:
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/2被截断为零。所以我尝试ceiling( count(*)/2 )
,但我得到了相同的结果。如何让count(*)/2
使用浮点运算?
答案 0 :(得分:2)
尝试.0
黑客,
CEILING(COUNT(*) / 2.0)