⑴ sql 分組內排序
就用select * from table1 order by 欄位1,欄位2就行了
第一個欄位會按分組排好
⑵ 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 同一個欄位先分組再排序
您好,您這樣:
Create Table zxt_tes1
(
Id Number,
Name Varchar2(10),
Type Char(1)
)Nologging
Insert Into zxt_tes1 Values(001, 'ssss', 'A');
Insert Into zxt_tes1 Values(002, 'dddd', 'A');
Insert Into zxt_tes1 Values(001, 'aaaa', 'B');
Insert Into zxt_tes1 Values(002, 'dddd', 'B');
Insert Into zxt_tes1 Values(001, 'cccc', 'C');
Insert Into zxt_tes1 Values(002, 'eeee', 'C');
commit;
SQL> Select * From zxt_tes1
2 ;
ID NAME TYPE
---------- ---------- ----
1 ssss A
2 dddd A
1 aaaa B
2 dddd B
1 cccc C
2 eeee C
6 rows selected
---
sql如下:
SQL> Select t.*,row_number() over ( Partition By t.Id Order By t.Name) From zxt_tes1 t;
ID NAME TYPE ROW_NUMBER()OVER(PARTITIONBYT.
---------- ---------- ---- ------------------------------
1 aaaa B 1
1 cccc C 2
1 ssss A 3
2 dddd A 1
2 dddd B 2
2 eeee C 3
6 rows selected
⑷ 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 如何分組排序同時進行
1.
sql 分組關鍵字
group by
2.
排序關鍵字order
by
3.
假如定含檔義一個表,如name,count
欄位
4.
其中name
為字元串類型,count
為int
類型
5.
sql
如下:仔扮
6.
select
name,sum(談戚亂count)
from
table
7.
group
by
name
8.
order
by
name
asc
9.
order
by
可以按降序或升序,asc
代表升序,desc 代表降序
⑹ sql語句 按一列分組 然後再按別一列組內排序
sql 按 group 單純的對unitname 分組查詢後 是 "統計數據" ,不存在組內情況,並不會帶有 voucherID,不能排序,對 voucherID 的排序也是無意義。
或者說你按 unitname、voucherID 倆個分組,然後 按voucherID 排序,這個是可以實現的。
⑺ 在SQL語句中,分組用什麼子句,排序用什麼子句
排序採用ORDER BY語句:ORDER BY 語句用於根據指定的列對結果集進行排序。ORDER BY 語句默認按照升序對記錄行排序。如果希望按照降序對記錄進行排序,可以使用 DESC關鍵字。
SQL有兩種使用方式:
一是聯機交互使用,這種方式下的SQL實際上是作為自含型語言使用的。
另一種方式是嵌入到某種高級程序設計語言(如C語言等)中去使用。前一種方式適合於非計算機專業人員使用,後一種方式適合於專業計算機人員使用。盡管使用方式不向,但所用語言的語法結構基本上是一致的。
(7)sql分組並組內排序擴展閱讀:
以同一種語法結構提供兩種使用方式:
SQL既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用於聯機交互的使用方式,用戶可以在終端鍵盤上直接輸入SQL命令對資料庫進行操作。作為嵌入式語言,SQL語句能夠嵌入到高級語言(如C、 C#、JAVA)程序中,供程序員設計程序時使用。
而在兩種不同的使用方式下,SQL的語法結構基本上是一致的。這種以統一的語法結構提供兩種不同的操作方式,為用戶提供了極大的靈活性與方便性。
⑻ 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 分組統計並排序
group
by語句必須和聚合函數一起使用.
select
c,max(d)
from
a
group
by
c
order
by
max(d)
desc
這樣子可以.
因為一條select語句只可以返回一個結果集...
此句返回按c分組後並按每組中最大的d值進行排序.
⑽ 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