① sql:如何取得分组中某个字段为最大值的那些记录
用group by就可以解决。
比如表名为test,数据如下
id grade
1 10
1 20
2 40
2 30
现在要求按id分组查询grade的和,可以用如下语句:
1
select id,sum(grade) as grade from test group by id;
得到的结果是
id grade
1 30
2 70
② SQL中只对某两个字段进行分组,但我想得到其他字段而其他字段不写在GroupBy后,怎么做
如果其他字段的值都是一样的,那就用max或者min
如果是数字,并且需要计算,就用聚合函数
如果是其他的,那最好是先把分组的字段先取出来做一张临时表再和原表关联取得其他的值。
③ sql对一个字段进行分组 怎么显示多个字段
SELECT"最高分",student.*
FROMstudent,(SELECTMAX(score)ASscore,`subject`FROMstudentGROUPBY`subject`)b
WHEREstudent.`score`=b.score
ANDstudent.`subject`=b.subject
UNION
SELECT"最低分",student.*
FROMstudent,(SELECTMIN(score)ASscore,`subject`FROMstudentGROUPBY`subject`)b
WHEREstudent.`score`=b.score
ANDstudent.`subject`=b.subject;
亲试可行,推荐这种,可以看看,容易理解
④ 如何使用group by 分组查询表中所有字段信息
1.创建测试表,
创建表test_group_cols(idnumber,值varchar2(20),remarkvarchar2(20));
⑤ 用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
⑥ SQL如何查询一张表的所有字段并按其中一个字段进行分组
1、创建测试表,
create table test_group_cols(id number, value varchar2(20), remark varchar2(20));
⑦ (oracle)sql根据某一字段分组求和后再列出其他字段信息
acd一样的话,可以select a,c,d,sum(b) from table group by a,c,d;
除了ab字段外,取c一条记录 select a,c,sum(b) from where c = '你要的c' table group by a,c;