SQL中获取每组中的前两条 | 每组中第2条 | 每组中指定位置的信息
前提条件:
使用伪劣实现,对现有的信息进行分组添加序号。
create table if not EXISTS bigdata.test (id int ,name varchar(255), num int); insert into test VALUES(1,'lili-1', 1); insert into test VALUES(1,'lili-2', 2); insert into test VALUES(1,'lili-3', 3); insert into test VALUES(2,'lu-1', 1); insert into test VALUES(2,'lu-2', 2); insert into test VALUES(2,'lu-3', 3); select * from test where num in (1,2) order by id,num;
-- 过滤num列中想要的信息即可。
-- 如果只想获取每组的第一行,可以直接分组实现
-- 如果只想获取每组中前两行,where后过滤1,2即可。
-- 如果想获取指定列信息,直接在where后添加即可
表信息:
结果: