求高手帮写个效率比较好的查询语句!!!!
一张表中有张三、李四、王五、、、、、等N个人,这些人中 每个人有多条数据 但是时间不同
想要的结果: 把张三、李四、王五、、、等人各按时间排序后 取每个人的第一条数据
注意点:这张表的数据在10W以上,要效率比较好的查询语句
求高手指教啊,共同学习!!!!!!!!!!!!!
[解决办法]
select * from table where time||name in(
select max(time)||name from table group by name
)
[解决办法]
--假设你的表名T, 张三,李四人名列是name, 时间列是tdateselect * from(select t.*, row_number() over (partition by name order by tdate) rn from t)where rn = 1;--这样查出来是时间最早的数据,如果要最晚的,select * from(select t.*, row_number() over (partition by name order by tdate desc) rn from t)where rn = 1;
[解决办法]