當前位置:首頁 » 編程語言 » 分組排名sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

分組排名sql

發布時間: 2022-03-02 16:19:36

『壹』 sql語句 分組排序

你那圖片根本看不清,再補充下吧 ,把問題也說清楚點。。

『貳』 SQL 分組統計並排序

with tmp as
(select row_number() over(order by count(val)) as rn,val,count(val) as cnum from table1 group by val)
select * from tmp where rn<3
要想區別並列現象還要復雜一些,可能簡單的語句解決不了

『叄』 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分組匯總排序

華子,我來看你.....

『伍』 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分組排序

group
by語句必須和聚合函數一起使用.
select
c,max(d)
from
a
group
by
c
order
by
max(d)
desc
這樣子可以.
因為一條SELECT語句只可以返回一個結果集...
此句返回按c分組後並按每組中最大的d值進行排序.

『柒』 sql 分組排序

沒有計算機理解的順序,必需構造一個表示順序的函數。完整的實現語句如下:

select *,
case check_id
when 4 then 1
when 2 then 2
else check_id*10
end as def_order
from 表 order by def_order,idate

這里用CASE函數定義一個新的順序,如果check_id=4,新的排序號為1;如果check_id=2,新的排序號為2;如果check_id為其它,新的排序號為check_id*10,這樣能滿足要求的順序。

樓上的兄弟的解決方案,從理論上不能保證滿足要求,因為查詢輸出記錄的順序不一定是記錄輸入表的順序。

『捌』 Sql分組排名

sybase 沒有top 10吧。
用set rowcount 10

select * from table T where T.a in
(
set rowcount 10
select a from table where b=T.b order by a DESC
set rowcount 0
)
至於關鍵字是不是加[]記不清了。一直沒用過這樣的表名

--補充
你sql寫的怪怪的,是不是下面這意思
set rowcount 10
select *
from table
order by a desc
set rowcount 0

『玖』 SQL分組排序

create table #a (a char(10),b int)

insert #a select 'a',1
insert #a select 'a',5
insert #a select 'b',1
insert #a select 'b',4
insert #a select 'b',3
insert #a select 'b',5

create table #c (id int identity(1,1), a varchar(10))

insert into #c select distinct a from #A

create table #d (id int , a varchar(10),b int)

declare @a int
declare @b int
select @a=min(id) from #c
select @b=max(id) from #c

while (@a<=@b)
begin

select identity(int,1,1) as id , t1.a,t1.b into #b from #a t1, #c t2 where t1.a=t2.a and t2.[id]=@a order by t1.b

insert into #d
select * from #b

drop table #b
set @a=@a+1

end

select * from #d

『拾』 sql 分組和排序

如果是SQLServer 2005以上可以這樣寫
select 學生ID、課程編號、成績 from
(select 學生ID、課程編號、成績 ,row_number(partition by 課程編號 order by 課程編號,成績)as rn from student) as T where rn <=2 order by 課程編號、成績