如何 select 来自 table 的最大日期以获得不同的值

How to select max date from table for distinct values

我有一个 table 看起来像这样:

date        account asset    amount
01-01-2022  1       A        12     
01-01-2022  1       B        100
02-01-2022  1       A        14
02-01-2022  1       B        98
01-01-2022  2       A        15     
01-01-2022  2       C        230
02-01-2022  2       A        13
02-01-2022  2       B        223
03-01-2022  2       A        17
03-01-2022  2       B        237

我希望能够获取每个帐户的最后值(即最大日期)。所以结果应该是这样的:

date        account asset    amount
02-01-2022  1       A        14
02-01-2022  1       B        98
03-01-2022  2       A        17
03-01-2022  2       B        237

如何在 SQL 中完成此操作? 编辑:请注意,不同帐户的最大日期不相同。

您可以通过首先为每个帐户选择最大日期,然后在给定日期限制的情况下强制帐户之间进行匹配,如以下查询所示:

SELECT 
    *
FROM 
    (
    SELECT 
        MAX(date) AS date, 
        account
    FROM 
        tab 
    GROUP BY 
        account
    ) max_date_per_account
INNER JOIN 
    tab
ON 
    tab.date = max_date_per_account.date 
AND  
    tab.account = max_date_per_account.account