读书人

ORACLE 怎么先取 RowNum 再进行分组

发布时间: 2013-04-21 21:18:07 作者: rapoo

ORACLE 如何先取 RowNum 再进行分组?
语句如下,取出来的结果是时间条件内的最大值和最值,等于说rownum 是无效的。
(rownum肯定是大于500的),有些什么方法使用rownum有效?


SELECT max(to_number(f.offset_x)) AS maxoffset_x,
min(to_number(f.offset_x)) AS minoffset_x,
max(to_number(f.offset_y)) AS maxoffset_y,
min(to_number(f.offset_y)) AS minoffset_y,
max(to_number(f.scale_x)) AS maxscale_x,
min(to_number(f.scale_x)) AS minscale_x,
max(to_number(f.scale_y)) AS maxscale_y,
min(to_number(f.scale_y)) AS minscale_y,
max(to_number(f.rotation)) AS maxrotation,
min(to_number(f.rotation)) AS minrotation,
max(to_number(f.orthogonality)) AS maxorthogonality,
min(to_number(f.orthogonality)) AS minorthogonality,
max(to_number(f.shot_scale_x)) AS maxshot_scale_x,
min(to_number(f.shot_scale_x)) AS minshot_scale_x,
max(to_number(f.shot_scale_y)) AS maxshot_scale_y,
min(to_number(f.shot_scale_y)) AS minshot_scale_y,
max(to_number(f.shot_scale_avr)) AS maxshot_scale_avr,
min(to_number(f.shot_scale_avr)) AS minshot_scale_avr,
max(to_number(f.shot_rotation)) AS maxshot_rotation,
min(to_number(f.shot_rotation)) AS minshot_rotation,
max(to_number(f.cx_min)) AS maxcx_min,
min(to_number(f.cx_min)) AS mincx_min,
max(to_number(f.cx_max)) AS maxcx_max,
min(to_number(f.cx_max)) AS mincx_max,
max(to_number(f.cy_min)) AS maxcy_min,
min(to_number(f.cy_min)) AS mincy_min,
max(to_number(f.cy_max)) AS maxcy_max,
min(to_number(f.cy_max)) AS mincy_max,
max(to_number(f.mx_min)) AS maxmx_min,
min(to_number(f.mx_min)) AS minmx_min,
max(to_number(f.mx_max)) AS maxmx_max,
min(to_number(f.mx_max)) AS minmx_max,
max(to_number(f.my_min)) AS maxmy_min,
min(to_number(f.my_min)) AS minmy_min,
max(to_number(f.my_max)) AS maxmy_max,
min(to_number(f.my_max)) AS minmy_max
FROM (SELECT DISTINCT s.LOT_RRN, e.lot_id
FROM DATA_COLLECTION c, DCOL_STEP_INFO s, lot e
WHERE c.DCOL_RRN = s.DCOL_RRN


AND e.lot_rrn = s.lot_rrn
AND PARAMETER_SET_RRN = 4567414
AND PARAMETER_SET_VERSION = 1 ) A
INNER JOIN overy_lay_value f ON A.lot_id = f.LOT_ID
WHERE f.CREATE_TIME >= '2013-02-15'
AND F.CREATE_TIME <= '2013-03-16'
AND Rownum <= 500

结果
[解决办法]
引用:
语句如下,取出来的结果是时间条件内的最大值和最值,等于说rownum 是无效的。
(rownum肯定是大于500的),有些什么方法使用rownum有效?
SQL code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546SELECT max(to_nu……


你这个SQL写的很有意思哦...前面查询的都是聚合函数,例如min avg max sum count 等等,聚合函数得到的是一个值,但是后面又用上了rownum<=500

读书人网 >oracle

热点推荐