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