我有一个包含三个字段(item_id,source和price)的表。 (item_id,来源和价格)一起构成主键。聚合函数 - 获取不包含在GROUP BY子句中的列
item_id source price
------- ------- -----
1 paris 13
1 london 12
1 newyork 15
2 paris 22
2 london 15
2 newyork 14
对于每个item_id,我想知道最便宜的地方以及我将在该地点支付的价格。对于上面的例子,我想看看下面的输出:
item_id source price
------- ------- ---------
1 london 12
2 newyork 14
有一个简单的办法做到这一点不提表名两次?我正在使用MySQL,所以我不能使用WITH子句。
我在另一个用户的问题(Group related records, but pick certain fields from only the first record)中查看了加入的两个查询解决方案,但我真的很想避免提到两次表。问题是这个问题中的简单表格实际上代表了我的真实问题中的内嵌视图,这需要大约5秒的时间才能创建,因此我希望找到替代方案。
啊,我刚才提到你原来的解决方案会使运行时间加倍,我很高兴你提到临时表。也许临时表是在MySQL中执行此操作的最佳方式。我希望MySQL能够像Oracle一样使用WITH子句! – pcronin 2009-11-14 15:50:26