中间值的SQL而不是MIN / MAX或FIRST / LAST

时间:2015-10-02 13:01:41

标签: sql ms-access

是否有SQL函数返回三个中间值?

例如,假设我有一张桌子,其中有三辆车的人,按AutoMaker的字母顺序排序。

John: Ford
John: Honda
John: VW

然后

MIN(AutoMaker) returns Ford.
MAX(AutoMaker) returns VW.

是否有类似的SQL函数会返回本田?

我正在使用MS Access和Oracle。

谢谢。

2 个答案:

答案 0 :(得分:2)

简短回答:不,这太具体了。

更长的回答:这太具体了。因此,你所说的“中间”实际上是第二个记录。但如果你有5条记录,它将是第三条记录,依此类推。如果您在实践中需要它,只需为每一行(OracleAccess)分配一个行号,然后选择((n + 1)/ 2)nd行(WHERE row_number =(n +) 1)/ 2)。

PS - 如果你有4行,这是中间行? :)

答案 1 :(得分:0)

查询可能是这样的

select row_id, Field1   
FROM tbl 
where row_id  = (select cInt(count(Field1)/2) from tbl)

访问中的问题是你没有row_number,你需要将row_id添加到表中,然后填充row_id 1,2,3,4(在Field1上排序)

相关问题