hello world!!!!!

写下自己的一些心得,写下自己问题的方式,写下程序之路的艰辛,希望能够有朝一日成为大牛。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

分组求最大值,最小值 使用开窗函数经验总结

Posted on 2016-06-29 17:12  陈力  阅读(1964)  评论(0)    收藏  举报
select distinct TT.prod_id, tt.creteTime, tt.inspection_time, tt.cnt

from (select s.prod_id,
min(s.datetime_created) over(partition by s.prod_id) as creteTime,
max(s.inspection_time) over(partition by s.prod_id) as inspection_time,

sum(s.complete_count) over(partition by s.prod_id) as cnt

FROM qms.oqc_inspection_sample s
WHERE length(s.prod_id) = 14 and s.prod_id like '6%'
and s.inspection_result = '合格'
and s.status in ('已检验', '已生成报告')) tt

  这里使用了分析函数,使用分组中的一组,进行求和 ,求最大值,最小值。

问题:

 一:我这里使用了 DISTINCT去重,有没有效率更好的方式去重呢

 二:分析函数不能使用条件过滤,比如某个分组的数据,我想只取某个字段等1的值的求和。