从多条记录中获取最大日期

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),它会提供同一帐户的两个输出。

以上是关于从多条记录中获取最大日期的主要内容,如果未能解决你的问题,请参考以下文章

如何设置子查询以获取具有最新日期和最大 ID 的单个记录?

Oracle 选择多条记录的最大日期

SQL Server:从最大日期/最新日期的记录中获取数据

从可能产生多条记录的连接表中获取单条记录

从 JSON 数组中获取每行多条记录

我想使用 jpa 从 db 中获取完全匹配的记录,但它提供了多条记录