當前位置:首頁 » 編程語言 » 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