1
我想用Oracle選擇表格的60%處的行。我能找到60%的行編號爲:獲取表格的60%處的行
select round(count(*)*0.60) as sira from
(select to_date(time) as tarih,lenght as hiz from table order by length desc)
我正在尋找該行的名列數據爲60%。也就是說,所有行的60%應具有比選定行更高的長度。
例如,對於這樣的數據:
name time length
r1 10:00 1
r2 10:02 2
r3 10:04 3
...
r10 10:20 10
我在尋找,打印r4
查詢
這將永遠不會返回任何行,因爲您無法在n> 1時使用rownum = n。請參閱http://stackoverflow.com/questions/855422/oracle-sql-w hy-does-query-select-from-records-where-rownum-5-and-rownum – 2013-05-09 11:05:33
@FrankSchmitt:有趣的是,也許可以用'row_number()' – Andomar 2013-05-09 11:07:48
來完成。或者,或者你從rownum返回rownum值內部查詢並使用該值在外部過濾,像select * from(選擇rownum作爲rn,... from ...)其中rn =(從yourtable選擇round(cnt * 0.60)。但我更喜歡使用窗口函數的方法。 – 2013-05-09 11:13:36