当前位置:首页 » 编程语言 » SQL中分组后怎样小组内排序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

SQL中分组后怎样小组内排序

发布时间: 2022-05-04 20:32:43

sql如何对分组后运算出来的结果进行排序

提供两种方案,第一种是降序
select sno,avg(grade) 'nihao' from sc
group by sno order by 'nihao' desc
第二种是升序
select sno,avg(grade) 'nihao' from sc
group by sno order by 'nihao' asc

其中‘nihao’表示avg(grade)这个列的别名

⑵ 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

⑶ sql 分组后排序

select*,ROW_NUMBER()over(partitionby品牌orderby市场份额desc)as排名FROM市场份额表

⑷ 使用sql的分组函数之后,怎样在被分组的数据

sqlserver 分组函数,请参阅:

sqlserver分组开窗函数的用法

用这些函数,分组后,可以实现分组内部编号排序,例:

createtableA([姓名]nvarchar(20),[订单数]int,[订单日期]datetime)
go
insertintoA([姓名],[订单数],[订单日期])values('www.maomao365.com',1900,'2014-5-6')
insertintoA([姓名],[订单数],[订单日期])values('www.maomao365.com',1800,'2018-5-6')
insertintoA([姓名],[订单数],[订单日期])values('www.maomao365.com',1800,'2018-5-6')
insertintoA([姓名],[订单数],[订单日期])values('小张',100,'2013-5-6')
insertintoA([姓名],[订单数],[订单日期])values('小明',2600,'2013-1-6')
insertintoA([姓名],[订单数],[订单日期])values('小明',1800,'2013-5-6')
insertintoA([姓名],[订单数],[订单日期])values('小李',888,'2017-3-6')
go

/*row_number返回分组后的连续排序,不会出现重复的排序值*/
selectrow_number()over(partitionby[姓名]orderby[订单日期]desc)askeyId,*fromA

/*rank返回分组后的连续排序,会出现跳跃排序值*/
selectrank()over(partitionby[姓名]orderby[订单日期]desc)askeyId,*fromA

/*dense_rank返回分组后的连续排序,不会出现跳跃排序值,但是会出现重复的排序值*/
selectdense_rank()over(partitionby[姓名]orderby[订单日期]desc)askeyId,*fromA

go
truncatetableA
droptableA

⑸ sql 分组内排序

就用select * from table1 order by 字段1,字段2就行了
第一个字段会按分组排好

⑹ 在SQL语句中,分组用什么子句,排序用什么子句

排序采用ORDER BY语句:ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序对记录行排序。如果希望按照降序对记录进行排序,可以使用 DESC关键字。

SQL有两种使用方式:

一是联机交互使用,这种方式下的SQL实际上是作为自含型语言使用的。

另一种方式是嵌入到某种高级程序设计语言(如C语言等)中去使用。前一种方式适合于非计算机专业人员使用,后一种方式适合于专业计算机人员使用。尽管使用方式不向,但所用语言的语法结构基本上是一致的。

(6)SQL中分组后怎样小组内排序扩展阅读:

以同一种语法结构提供两种使用方式:

SQL既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接输入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(如C、 C#、JAVA)程序中,供程序员设计程序时使用。

而在两种不同的使用方式下,SQL的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的操作方式,为用户提供了极大的灵活性与方便性。

⑺ sql语句 按一列分组 然后再按别一列组内排序

sql 按 group 单纯的对unitname 分组查询后 是 "统计数据" ,不存在组内情况,并不会带有 voucherID,不能排序,对 voucherID 的排序也是无意义。

或者说你按 unitname、voucherID 俩个分组,然后 按voucherID 排序,这个是可以实现的。

⑻ SQL如何对分组后的结果进行排序并且取前几名

SQL取分组中的前几名

[sql] www.2cto.com
create table #aa(class varchar(10),name varchar(10),lang int,math int)
go

insert into #aa
select '1','a1',60,70
union all
select '1','a2',80,70
union all
select '1','a3',90,70
union all
select '1','a4',50,70
go

insert into #aa
select '2','b1',60,70
union all
select '2','b2',90,90
union all
select '2','b3',90,70
union all
select '2','b4',50,70

go

select * from #aa

--取每年级前一名的成级
select * from
(select ROW_NUMBER() over(partition by class order by lang+math desc) rr, * from #aa ) a
where rr<2
--取每年级前二名的成级
select * from
(select ROW_NUMBER() over(partition by class order by lang+math desc) rr, * from #aa ) a
where rr<3

⑼ sql将数据分组,给每一组数据排序

select * from table group by row1 order by row2
再设置自增字段,这个应该在数据录入的时候通过触发器实现,本人搞不定

⑽ sql 如何分组排序同时进行

1、首先输入代码:

SELECT * FROM (select * from CJ where Gender='女') m

where( select COUNT(*) from (select * from CJ where Gender='女') n

where m.Classid = n.Classid and n.English > m.English)<2

order by Classid, English desc

2、然后再输入代码:

SELECT * FROM CJ m

where(

select COUNT(*) from CJ n

where m.Classid = n.Classid and n.English > m.English and n.Gender='女')<2 --指的是内表

and Gender='女' --指的是外表

order by Classid, English desc