SQL : select * from crisis_sales where dept_id = 'D02' order by sale_date;
DEPT_ID SALE_DATE GOODS_TYPE SALE_CNT
----------------------------------------------------------------------
min(sale_cnt) keep(dense_rank first order by sale_date) min_early_date.
这句SQL是用来查找最早的(FIRST)SALE_DATE 中,SALE_CNT 最小的(MIN)一个.
因为在同一个sale_date 中,可能存在多条sale记录,所以需要用min/max 函数进行聚合。
1. keep() 是保存满足括号内条件的记录,即keep括号内的记录,可能存在多条first or last 的记录。
2. dense_rank 是排序策略。
3. first/last 是筛选策略
总之,使用keep() 函数一般的格式为 :
1. max() keep(dense_rank first/last order by )
2. min() keep(dense_rank first/last order by)