sql最新分組
❶ sql如何根據分數進行分組
select成績,
casewhen成績>=90then'A'when成績>=80then'B'when成績>=70then'C'else'D'endas`group`
from表;
Case具有兩種格式。簡單Case函數和Case搜索函數。
--簡單Case函數
CASEsexWHEN'1'THEN'男'WHEN'2'THEN'女'ELSE'其他'END
--Case搜索函數
CASEWHENsex='1'THEN'男'WHENsex='2'THEN'女'ELSE'其他'END
該例中即可採用case搜索函數
❷ SQL在分組查詢時,怎麼獲取最新一條記錄
sql如何分組選擇顯示最新的一條數據
首先,該問題對應的SQL如下
select 采購類別,客戶,訂貨總額
from (select 采購類別,客戶,訂貨總額,
row_number() over(partition by 采購類別 order by 訂貨總額 desc) rn
from table_name) awhere rn<=2
;
其次,常用資料庫比如Oracle和Sqlserver都有特定函數完成分組排序的功能,如果需要顯示並列的情況可以用下面另外的2個.
分別有3個類似函數:
row_number() over
這個函數不需要考慮是否並列,哪怕根據條件查詢出來的數值相同也會進行連續排名。也是最常用的函數,排序結果類似於1,2,3,4,5
rank() over
查出指定條件後進行一個排名,但是有一個特點。假如是對學生排名,那麼實用這個函數,成績相同的兩名是並列。排序結果類似於1,2,2,4,5
dense_rank() over
比較特殊,排序結果類似於1,2,2,3,4
❸ 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
❹ sql語句實現分組統計
方法和詳細的操作步驟如下:
1、第一步,創建一個測試表,詳細代碼見下圖,轉到下面的步驟。
❺ sql server 怎麼分組
--不知道你需要依據什麼分組,如下是根據table1_id進行分組所得結果
select * from (select a.id as a_id,a.name,a.time,a.content,b.id as b_id,b.user from table1 a inner join table2 b on a.id = b.table1_ID) new_tbl where b_id in (select min(id) from table2 group by table1_ID)