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

sql中如何按兩個欄位分組

發布時間: 2022-07-29 01:38:13

A. sql中的group by id1,id2 是如何根據這兩個欄位進行分組的

按(id1, id2)的實際值進行分組,如:
--------------------
一年級,1班
一年級,2班
二年級,1班
二年級,2班
一年級,3班

B. 請教一個sql(按2個欄位分組然後從每組取出最大的一條紀錄,再根據一個標記為判斷是否取出該值)

CREATETABLE#test(
idINT,
[number]varchar(6),
deptvarchar(6),
[date]int,
flagint
);
GO

INSERTINTO#test
SELECT1,'001','aa',20130201,1UNIONALL
SELECT2,'001','aa',20120801,0UNIONALL
SELECT3,'001','bb',20130403,1UNIONALL
SELECT4,'001','bb',20120404,0UNIONALL
SELECT5,'001','cc',20120604,0UNIONALL
SELECT6,'002','aa',20130201,1UNIONALL
SELECT7,'002','aa',20120801,0UNIONALL
SELECT8,'002','bb',20130403,1UNIONALL
SELECT9,'002','bb',20120404,0UNIONALL
SELECT10,'002','cc',20120604,1
GOSELECT
main.*
FROM
#testmain
WHERE
NOTEXISTS(
SELECT1
FROM#testsub
WHEREmain.[number]=sub.[number]ANDmain.[dept]=sub.[dept]ANDmain.[id]>sub.[id]
);
GO

idnumberdeptdateflag
---------------------------------------------
1001aa201302011
3001bb201304031
5001cc201206040
6002aa201302011
8002bb201304031
10002cc201206041

(6行受影響)


WithMyCTEAS(
SELECT
main.*
FROM
#testmain
WHERE
NOTEXISTS(
SELECT1
FROM#testsub
WHEREmain.[number]=sub.[number]ANDmain.[dept]=sub.[dept]ANDmain.[id]>sub.[id]
)
)
SELECT
[number],MAX([date])ASdate
FROM
MyCTE
GROUPBY
[number]
HAVING
SUM(CASEWHENflag=1THEN1ELSE0END)=COUNT(flag);
GO

numberdate
-----------------
00220130403

(1行受影響)

C. SQL中只對某兩個欄位進行分組,但我想得到其他欄位而其他欄位不寫在GroupBy後,怎麼做

如果其他欄位的值都是一樣的,那就用max或者min
如果是數字,並且需要計算,就用聚合函數
如果是其他的,那最好是先把分組的欄位先取出來做一張臨時表再和原表關聯取得其他的值。

D. SQL如何查詢一張表的所有欄位並按其中一個欄位進行分組

1、創建測試表,

create table test_group_cols(id number, value varchar2(20), remark varchar2(20));

E. 一個sql查詢根據兩個欄位分組問題

可以這樣寫
select * from table where title like '%a%'
union
select * from table where context like '%a%'

F. sql :兩個欄位,決定一個唯一值,如果利用這兩個欄位分組

select name,ip from 表名 group by name,ip

G. SQL 按兩個欄位分組

selectMODELNO,COLORfrom表名groupbyMODELNO,COLOR

表名換下

這樣能分組

但是你可能還有別的東西要做吧,這樣只是把組分了呀

H. sql語句按照兩個欄位分組然後查詢出每一組中的最大值。

select a,b,max(c) c

from tab
group by a,b

I. SQL 如何根據兩個欄位排序

1、首先建一張測試表coal_blead,裡面有多個欄位

J. 用SQL按兩個欄位分組查詢

SELECT month,no,money=SUM(MONEY) FROM TABLENAME GROUP BY MONTH,NO ORDER BY MONTH,NO
上面是第一個結果。

第二個這樣得到:
select month as [m-n],
(select sum(money) from tablename b where b.month=a.month and b.no=1) as [1],
(select sum(money) from tablename b where b.month=a.month and b.no=2) as [2],
(select sum(money) from tablename b where b.month=a.month and b.no=3) as [3]
from
(select distinct month from tablename) a