如何 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
我有一个 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