分析函式中的KEEP

abstractcyj發表於2013-03-24
keep可以理解為MIN, MAX的擴充套件。如果你在GROUP BY的結果裡,需要的不是最小、最大值,而是對應最小、最大值的那個行的其他列,就可以用KEEP。
比如 MIN(HIRE_DATE) ... GROUP BY DEPARTMENT 這是求每個部門最早的員工就職日期,如果你還需要該日期對應的姓名,就用 
MIN(NAME) KEEP(DENSE_RANK FIRST ORDER BY HIRE_DATE) ... GROUP BY DEPARTMENT
注意這仍然遵循分組聚合的定義,每個部門只會返回一行,也就是說如果有兩個人同樣都是最早入職的那麼只會返回NAME最小的那個

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-756966/,如需轉載,請註明出處,否則將追究法律責任。

相關文章