假设我有三行关于批量购买水果的合同的如下数据。
NAME ---- LOCATION ---- EXPIRATION DATE
Apples Pittsburgh 10/10/2015
Apples Pittsburgh 1/2/2016
Apples Pittsburgh 12/31/2015如果我有一个庞大的实体列表,其中一些水果有多个条目,并且我希望总是选择最新的合同到期日期,那么我应该在SQL select查询中添加什么呢?
因此,在这3个实体中,我希望最后一行(以及在select查询中显示的唯一一行)是具有最新过期日期的行.在本例中,它的到期日为“2016年1月2日”。
发布于 2015-06-01 15:01:30
当您描述这个问题时,解决方案是一个简单的group by
select name, max(expirationdate)
from contracts t
group by name;这假定过期日期以表中的本机日期/时间格式存储。使用正确的类型存储日期非常重要,因此,如果有人错误地给出了字符串类型,则应该更改该类型。查看数据库的ALTER TABLE命令。
发布于 2015-06-01 15:02:09
也许吧
select "NAME", "LOCATION", MAX( "EXPIRATION DATE" ) from MyTable
group by "NAME", "LOCATION" 如果你也想分开地址,或者
select "NAME", "LOCATION", MAX( "EXPIRATION DATE" ) from MyTable
group by "NAME"如果你只需要最多的水果,在所有的地点中一次。
检查演示并根据您的需要对其进行调优:http://sqlfiddle.com/#!5/87599/5/0
https://stackoverflow.com/questions/30576775
复制相似问题