求解析函数Row_Number()的MIX和MAX?

Find MIX and MAX of Row_Number() of Analytic function?

我正在进一步参考:

这里如何找出rnMINMAX值?

SELECT q.*
FROM (SELECT DEPT.ID rowobjid,
   DEPT.CREATOR createdby,
   DEPT.CREATE_DATE createddate,
   DEPT.UPDATED_BY updatedby,
   DEPT.LAST_UPDATE_DATE updateddate,
   DEPT.NAME name,
   DEPT.STATUS status,
   statusT.DESCR statusdesc,
   REL.ROWID_DEPT1 rowidDEPT1,
   REL.ROWID_DEPT2 rowidDEPT2,
   DEPT2.DEPT_FROM_VAL parentcid,
   DEPT2.NAME parentname,
   ROW_NUMBER() OVER (PARTITION BY DEPT.CREATE_DATE ORDER BY DEPT.ID) AS rn
FROM TEST.DEPT_TABLE DEPT
LEFT JOIN TEST.STATUS_TABLE statusT
ON DEPT.STATUS = statusT.STATUS
LEFT JOIN TEST.C_REL_DEPT rel
ON DEPT.ID = REL.ROWID_DEPT2
LEFT JOIN TEST.DEPT_TABLE DEPT2
ON REL.ROWID_DEPT1 = DEPT2.ID) q

rn 的最小值将始终为 1 并用于查找最大值。 *后使用max如下:

SELECT q.*, max(rn) over () as max_rn, 1 as min_rn
FROM (SELECT 
.......
.......

如果你想在每个分区的内部查询中最大 rn 那么你可以使用 count 分析函数,因为它将 return 定义分区内的记录总数(即只不过是该分区的最大值 rn),如下所示:

COUNT(1) OVER (PARTITION BY DEPT.CREATE_DATE) AS MAX_RN, 1 AS MIN_RN