mysql - SQL 为 MySQL 上的帐户选择最后一条记录

标签 mysql sql greatest-n-per-group

我有如下表格

id transaction    value  date       account number
1                 5      05/01/17   AA1
2                 3      05/02/17   AA2
3                 7      05/01/17   AA3
4                 3      05/03/17   AA2
5                 5      05/02/17   AA1
6                 3      05/02/17   AA5
7                 5      05/03/17   AA1
8                 3      05/04/17   AA2
9                 5      05/04/17   AA1
10                3      05/02/17   AA4
11                5      05/05/17   AA1
12                3      05/06/17   AA2
13                5      05/05/17   AA1
14                3      05/07/17   AA2
15                5      05/07/17   AA1
16                5      05/01/17   AA6
17                3      05/08/17   AA2

我要为每个账户选择最后一笔交易记录

最佳答案

您需要按帐号分组。见下文

CREATE TABLE #t (id int, value  DECIMAL(18,2), date DATETIME, account_number VARCHAR(50))

SELECT  T1.*
FROM    #T T1
       INNER JOIN (  SELECT account_number, MAX(id) id
                     FROM  #T 
                     GROUP BY account_number  ) T2
               ON T2.account_number = T1.account_number
               AND T2.id = T1.id

关于mysql - SQL 为 MySQL 上的帐户选择最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44310436/

相关文章:

php - 如何将单个变量从php页面传递到html

php - MySQL PDO : Using bound placeholder within a regular expression

mysql - 跟踪 MySQL 更改历史记录的简单方法?

mysql - SQL 按日期集分组

mysql - 如何在派生表的 where 条件中使用先前联接中的字段?

php - 如何保护网站免受批量抓取/下载?

php - SQL 从表中获取不同的日期值

java - Oracle 准备语句 - ORA-01821 : date format not recognized

mysql - 检索每组中的最后一条记录 - MySQL

mysql - 在SQL中找到一个变量的最小值和其他变量的匹配值