我正在寻找一个sql查询,它为每个用户提供一个scr,从最高的seq开始,scr不等于0。保证每个用户的seq值是唯一的。
样本数据:
id cde用户scr seq
1詹姆斯110 19
21詹姆斯85 20
3 1詹姆斯99 21
41詹姆斯99 22
51詹姆斯0 23
6 2安德鲁88 19
7 2安德鲁88 20
8 2安德鲁88 21
9 2安德鲁0 22
10 2安德鲁0 23
11 3大卫0 19
12 3大卫95 20
13 3大卫95 21
143大卫0 22
15 3大卫0 23
查询结果:
id cde用户scr seq
41詹姆斯99 22
8 2安德鲁88 21
13 3大卫95 21
最佳答案
您可以在子查询中找到最大的seq
。
SELECT a.*
FROM tableName a INNER JOIN
(
SELECT [user], max(seq) MaxSeq
FROM tablename
WHERE Scr <> 0
Group By [user]
) b
ON a.[user] = b.[user] AND
a.seq = b.maxSeq
ORDER BY ID
SQLFiddle Demo
关于sql - 根据一列的最大值和另一列的条件获取行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12208025/