假设我有三行,其中有关于批量购买水果的合同的以下数据。
NAME ---- LOCATION ---- EXPIRATION DATE
Apples Pittsburgh 10/10/2015
Apples Pittsburgh 1/2/2016
Apples Pittsburgh 12/31/2015
如果我有一个巨大的实体列表,其中一些成果有多个条目,我想总是选择最新的合同到期日期,我会在SQL选择查询中添加什么?
所以在这3个实体中,我希望最后一行(并且唯一一个显示在select查询中)是具有LATEST到期日期的那一行...在这个例子中它将是具有“1/2/2016”的到期日
答案 0 :(得分:1)
在您描述问题时,解决方案很简单group by
:
select name, max(expirationdate)
from contracts t
group by name;
这假设到期日期以表格中的本机日期/时间格式存储。使用正确的类型存储日期非常重要,如果有人错误地给它一个字符串类型,你应该更改类型。查看数据库的ALTER TABLE
命令。
答案 1 :(得分:0)
也许
my_room
your_room
如果你想分开地址,或
select "NAME", "LOCATION", MAX( "EXPIRATION DATE" ) from MyTable
group by "NAME", "LOCATION"
如果您一次只需要水果最大值,那么在所有位置中
检查演示并根据您的需要进行调整:http://sqlfiddle.com/#!5/87599/5/0