sql语句 在分组内排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句 在分组内排序相关的知识,希望对你有一定的参考价值。
在分组内如何排序然后再提取前两个其余删除,最好写一个例子,我试了很长时间都没有成功,谢谢!!!
只能用存储过程思路如下
将分组那个字段比如是A
Create temp table tmp_b
foreach
select distinct A into bianlianga from table
insert into tmp_b
select top 2 B from table where A=bianlianga order by B ;
delete from table where A=bianlianga and B in(select * from tmp_b);
end foreach 参考技术A delete t
from table t
where ID not in(select top 2 ID from table where col=t.col order by ID)
--查询保留信息
select *
from table t
where ID in(select top 2 ID from table where col=t.col order by ID) 参考技术B SELECT pub_id, SUM(advance) AS AmountAdvanced,
AVG(price) AS AveragePrice
FROM pubs.dbo.titles
WHERE pub_id > '0800'
AND price >= 5
GROUP BY pub_id
HAVING SUM(advance) > 15000
AND AVG(price) < 20
ORDER BY pub_id DESC 参考技术C mysql:
select age,name from t_employee group by age desc limit 1,2;
MSSQLServer2000:
select top 2 * from T_Employee order by FSalary Desc;
oracle 和DB2 没有直接方法,可通过窗口函数实现! 参考技术D 用GROUP BY 最后取TOP 2就好了
sql语句 按一列分组 然后再按别一列组内排序?
比如,我有个表有
ID unitname voucherID
1 意义 23
2 你怒 12
3 意义 15
4 你怒 16
5 你怒 6
我想先按unitname的内容进行分组,然后再在组内按voucherID排序
或者说你按 unitname、voucherID 俩个分组,然后 按voucherID 排序,这个是可以实现的。追问
我不是说用group by,只是想先把unitname中相同的内容放在一起,然后再把相同unitname的项的voucherID 进行排序
追答分组? 排序? 天呐 我看到你采纳的答案了..
参考技术A select ID,unitname,voucherIDfrom 表
order by unitname,voucherID本回答被提问者采纳
以上是关于sql语句 在分组内排序的主要内容,如果未能解决你的问题,请参考以下文章