有这样一个表T,主键是“编号 A”和“履历编号 B“, 有如下数据:
A B
1 1
1 2
1 3
2 1
2 2
如何确定一条数据,我现在是这么做的
SELECT T.*
FROM T
WHERE A=参数 AND
B=(SELECT MAX(T.B)
FROM T
GROUP BY A )
这样写很费时间,希望大家给点意见,有没有好办法提高一下性能。
A B
1 1
1 2
1 3
2 1
2 2
如何确定一条数据,我现在是这么做的
SELECT T.*
FROM T
WHERE A=参数 AND
B=(SELECT MAX(T.B)
FROM T
GROUP BY A )
这样写很费时间,希望大家给点意见,有没有好办法提高一下性能。
and rn=1
and rn=1
select A , max(B) B from T where A = '参数' group by A
FROM T
GROUP BY A ) ---你这句返回的可能是多个值啊,是不是写错了?
from (select B from T where A = '参数')如果还是慢,那看看执行计划吧,用到索引没
SELECT *
FROM TT T1
WHERE NOT EXISTS (SELECT 1
FROM TT T2
WHERE T1.A = T2.A
AND T1.B < T2.B)
AND T1.A = 参数;
FROM T
GROUP BY A )会返回好多条记录
消除gorup by,应该会快点