读书人

掏出含有分组最大值的行

发布时间: 2012-07-08 17:43:42 作者: rapoo

取出含有分组最大值的行

这是一个通用的问题,很多业务场景下都存在,例如取出价格最贵的那个商品,取出最新的价格、等等

?

这类问题可以归为,如何将分组中最大值所在的行取出来

?

假设我们有一张表存储着”供应商ID_商品ID_采购价格_采购时间“四列信息,其中供应商ID_商品ID为联合主键

要求:对于某个商品,取出最近一次采购的价格?

?

错误作法:

select  t1.supplier_id ,  t1.product_id ,  t1.last_price , t1.last_timefrom table t1join (    select product_id , max(last_time) max_last_time    from table    group by product_id ) as t2on t1.product_id = t2.product_id and t1.last_time = t2.max_last_time;
?

读书人网 >其他数据库

热点推荐