文章出自:http://zhidao.baidu.com/link?url=UTDXhHcfizHWM6tRar48i41_zwqVmF19iFiBhwQzGl7Ct2qlilPAzZlgl9KqFbAMolwvxnrQFh8UHXbQZcAT1q
假如表里面存放了每个商品不同日期的不同价格
product price date
1111 10.00 2007-07-01
2222 21.00 2007-07-01
2222 22.00 2007-07-02
1111 11.00 2007-07-02
3333 1.00 2007-07-01
我现在需要对商品分组后选择最后日期的那条记录
结果应该是
2222 22.00 2007-07-02
1111 11.00 2007-07-02
3333 1.00 2007-07-01
请问这个SQL怎么写?数据量较大,所以还要以性能优先
语句如下:
-- 用分组函数来做,假如你的表名是table_name
select A.*
from table_name A,(select product,max(date) max_date from table_name group by product) B
where A.product=B.product and A.date=B.max_date;