当前位置:首页 » 编程语言 » 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;

热点内容
成都php招聘 发布:2025-01-15 13:12:16 浏览:380
怎么调用服务器数据库 发布:2025-01-15 13:06:25 浏览:656
人人网设置访问权限 发布:2025-01-15 13:02:06 浏览:563
崩坏学园2脚本 发布:2025-01-15 12:58:43 浏览:459
我的世界服务器等级如何升 发布:2025-01-15 12:45:55 浏览:689
c语言程序填空题 发布:2025-01-15 12:45:53 浏览:545
怎么配置氯化钠浓度 发布:2025-01-15 12:34:06 浏览:206
4000除以125简便算法 发布:2025-01-15 12:27:41 浏览:464
源码商用 发布:2025-01-15 12:26:54 浏览:75
价钱算法 发布:2025-01-15 12:26:03 浏览:401