⑴ sql语言 怎么求每组最大,就是用group by 分组后,求每组某列最大
select
max(列名)
as
[最大……]
//[最大……]
这个是指你自己可以命名的
from
[表名]
group
by
[列名]
⑵ sql查询 分组后 每组某字段值最大的一行所有列
按照员工ID分组,取出ID值最大的一行
1、第一个方法,需要考虑ID有重复值的问题,如果最大值存在重复值,那么结果也重复。
SELECT*
FROM员工信息变化表T1
WHEREid=(SELECTMax(id)
FROM员工信息变化表T2
WHERET1.员工ID=T2.员工ID)
2、第二个方法:该语句是在SQL Server中编写的,应该不适用于MySQ和Oracle。排名函数是SQL Server2005中新增的功能,不适用SQL Server 2000
SELECT*
FROM(SELECTrow_number()OVER(PARTITIONBY员工IDORDERBYidDESC)
ASROW_NUM,
*
FROM员工信息变化表)T1
WHEREROW_NUM=1
⑶ sql 分组后求每组中的最大值对应的那条数据
select A,C,(select B from T t where t.A = K.A AND t.C = K.C) B
from( select t.A A,max(t.C) C from T tgroup by T.A) K
⑷ SQL Server中如何分组查询最大值
SQL> with a as (select 1 a,0 b,'c1' c,'d1' d from al
2 union
3 select 1 a,1 b,'c2' c,'d2' d from al
4 union
5 select 1 a,3 b,'c3' c,'d3' d from al
6 union
7 select 4 a,0 b,'c4' c,'d4' d from al
8 union
9 select 5 a,1 b,'c5' c,'d5' d from al
10 union
11 select 5 a,2 b,'c6' c,'d6' d from al
12 union
13 select 6 a,1 b,'c7' c,'d7' d from al
14 union
15 select 6 a,4 b,'c8' c,'d8' d from al
16 )
17 SELECT A,B,C,D FROM
18 (select A,B,C,D,ROW_NUMBER()OVER(PARTITION BY A ORDER BY A,B DESC) RN from A)
19 WHERE RN=1
20 /
A B C D
---------- ---------- -- --
1 3 c3 d3
4 0 c4 d4
5 2 c6 d6
6 4 c8 d8
SQL>
⑸ sql语句。。查询:分组的总和的最大值。。。
select name,count(*) from 表 group by name
这样显示出来就是
ss 3
dd 2
如果后面加上 where name='ss'那么结果就是ss 3
所以也就不存在什么max(总和)了,因为你已经锁定了name了。
另外,如果要查max(总和),那么代码如下:
select max(x.ACount) 最大总和 from (select name,count(*) ACount from 表 group by name) x
⑹ 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查询取分组最大值
selectt1.分类,t1.商品名称,table.库存,t1.更新时间
from (
select 分类,商品名称,max(更新时间) 更新时间 from table
group by 分类,商品名称
) t1
inner join table on t1.分类=table.分类 and t1.商品名称=table.商品名称 and t1.更新时间
=table.更新时间
(7)sql分组查询最大值扩展阅读:
关于SQL最大值查询语句的记录
SELECT
bsnum,
STATE AS FILE_STATE
FROM
FILE_RECORD r
WHERE
STATE =(
SELECT
MAX(STATE)
FROM
FILE_RECORD
WHERE
bsnum = r.bsnum
);
小技巧:有时需要测试sql语法但又觉得创建表麻烦,可以使用创建一个临时表,如下:
select id, count(t.id) from
(
select 1 as id, 2 as age, 'F' as sex from al union
select 2 as id, 2 as age, 'M' as sex from al union
select 3 as id, 3 as age, 'F' as sex from al union
select 4 as id, 4 as age, 'M' as sex from al
)t
⑻ SQL分组查询最大值最小值
查询语句参考如下:
select
UserName,--
Convert(char(8),dealTm,112) as date,--日期
min(dealTm) as earliestTime ,--最大
max(dealTm) as latestTime--最小
from t2
group by Convert(char(8),dealTm,112) ,UserName
⑼ sql如何求分组计数之后计数的最大值
插入测试记录:
[sql] view plain
insertintostudentsvalues('数学','Jack','Tianjin',80)
insertintostudentsvalues('数学','Jordan','Tianjin',80)
insertintostudentsvalues('数学','James','Beijing',55)
insertintostudentsvalues('英语','Jack','Tianjin',90)
insertintostudentsvalues('英语','Jordan','Tianjin',60)
insertintostudentsvalues('英语','James','Beijing',100)
insertintostudentsvalues('语文','Jack','Tianjin',60)
insertintostudentsvalues('语文','Tom','Tianjin',77)
insertintostudentsvalues('语文','Jordan','Tianjin',68)
想要抓取每个科目第一名的整条信息,可以使用Row_number()函数:
select*
from(
selectcourse,stu_name,city,score,ROW_NUMBER()over()asrn
fromstudents
)a
wherea.rn<=1;
⑽ mssql 2005查询 请问我要实现分组获取最大值,怎么写sql查询指令
select tb.型号,品牌,批号,数量 from tb
join
(select 型号,max(数量)as 最大数量 from tb group by 型号) A
on
(tb.型号=A.型号 AND 数量=最大数量)