从多条记录中获取最大日期
Posted
技术标签:
【中文标题】从多条记录中获取最大日期【英文标题】:Fetch max date from multiple records 【发布时间】:2015-09-03 07:24:32 【问题描述】:从下面两个表中要获取最大日期记录。
Table: account
ID account date
-----------------------
1 SBI 01-10-2005
2 SBI 05-11-2014
3 AXIS 02-06-2003
4 AXIS 01-08-2015
Table : user
ID date user Type
--------------------------------------
1 01-10-2005 amit C
2 05-11-2014 rahul D
3 02-06-2003 raghu C
4 01-08-2015 sumit C
OUTPUT:
ID account user date
--------------------------------
2 SBI rahul 05-11-2014
4 AXIS sumit 01-08-2015
【问题讨论】:
这两个表是如何链接的? 我认为我们可以使用分组方法??select ca.id,ca.account,cf.user,ca.date from account ca,user cf where ca.id=cf.id and ca.account in ('SBI','AXIS') and cf.type='C';
通过上述查询,我无法获得正确的数据
【参考方案1】:
我假设您将需要 Account 表中的 max(date)。告诉我。
在 select 和 group by 子句中的每一列总会有重复的条目,以给出非唯一的结果。
select 子句中未聚合的任何内容(max/min/avg 等)都应添加到 group by 子句中。
1) 以下将显示您的帐户、用户和日期的最大值。
select ca.account,cf.user,max(ca.date) from
account ca,user cf
where ca.id=cf.id
and ca.account in ('SBI','AXIS')
and cf.type='C'
group by ca.account,cf.user;
2) 以下将显示每个帐户的最大日期。
select ca.account,max(ca.date) from
account ca,user cf
where ca.id=cf.id
and ca.account in ('SBI','AXIS')
and cf.type='C'
group by ca.account;
3) 以下将显示用户及其最大帐户日期。
select cf.user,max(ca.date) from
account ca,user cf
where ca.id=cf.id
and ca.account in ('SBI','AXIS')
and cf.type='C'
group by cf.user;
【讨论】:
它为每个帐户提供两个输出 它是给的,因为有 2 个与帐户相关的用途。您是否只需要对帐户名称进行分组?如果是,请尝试以下操作。 select ca.account,max(ca.date) from account ca,user cf where ca.id=cf.id and ca.account in ('SBI','AXIS') and cf.type='C' group by ca .account; 通过这个查询,我得到了正确的数据,但是我想要获取的另一列呢,例如输出 应在 select 和 group by 子句中添加针对最大日期所需的任何列。这有帮助吗? 是的,但是在选择时提供其他库(即用户和 id),它会提供同一帐户的两个输出。以上是关于从多条记录中获取最大日期的主要内容,如果未能解决你的问题,请参考以下文章