我有一张表如下
id name tid seq aname ds
1 a xy 10 G E
1 a xz 20 G E
1 a az 30 G E
1 b wq 10 G E
1 b as 20 G E
2 c qw 10 G E
2 c sd 20 G E
1 a fg 34 S F
现在我想要o / p如下
id name tid seq
1 a az 30
1 b as 20
2 c sd 20
我的查询如下
select id,name,tid,max(seq)
from table
group by id,name where aname='G' and ds='E';
但我在tid字段中获取空值。我哪里出错?请帮忙。谢谢
答案 0 :(得分:0)
执行此操作的一种方法是使用子查询,该子查询为seq
和ID
的每个组获取最大Name
。然后,子查询的结果将连接回表本身,前提是它匹配三列:ID
,Name
和seq
,以便为您提供正确的值{{1 }}
tid
输出
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT id, name, max(seq) max_seq
FROM tableName
GROUP BY ID,name
) b ON a.ID = b.ID AND
a.seq = b.max_seq AND
a.name = b.name