当前位置:首页 » 编程语言 » sql分组取最大

sql分组取最大

发布时间: 2024-08-25 13:30:51

‘壹’ 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.更新时间

(1)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查询 分组后 每组某字段值最大的一行所有列

按照员工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 分组筛选取标识最大的那一行

  • 假设数据表名为haha,内容如下
    id name data
    1 ABC 2
    2 ABC 3
    3 ABC 5
    1 DEF 3
    2 DEF 4

    只允许使用查询,不能使用创建表的语句,结果中name列的值具有唯一性且包含原表中该列所有的值,如果有重复的,只取对应id列的值为最大的。

  • 查询结果为
    id name data
    3 ABC 5
    2 DEF 4

    以上只是假设,实际数据表大小超过600MB

‘肆’ sql语言 怎么求每组最大,就是用group by 分组后,求每组某列最大

在分组中使用max()函数即可。

例图中表格:

如果是最小,则可以使用 min()函数

‘伍’ 求助sql分组取最大唯一值

select max(aaaa) from (select distinct (值) aaaa from 表名 group by 分组字段) T;
其中distinct()过滤重复值,max()取最大值。

‘陆’ 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;

热点内容
停车系统数据库 发布:2025-05-17 17:44:02 浏览:290
罗技g502高级脚本 发布:2025-05-17 17:30:45 浏览:217
python解析post请求 发布:2025-05-17 17:27:19 浏览:696
社保测算密码是什么 发布:2025-05-17 17:25:09 浏览:157
phpini修改路径 发布:2025-05-17 17:19:06 浏览:280
mac搭建php开发环境 发布:2025-05-17 17:18:22 浏览:782
佟大为关悦上超级访问 发布:2025-05-17 17:09:50 浏览:310
闪迪存储卡高速 发布:2025-05-17 17:09:14 浏览:470
ios文件加密插件 发布:2025-05-17 17:05:48 浏览:797
androidbutton自定义 发布:2025-05-17 16:58:34 浏览:169