sql server 获取每一个类别中值最大的一条数据
2017-11-05 13:07
253 查看
--一、按name分组取val最大的值所在行的数据。 --方法1: select a.* from tb a where val = (select max(val) from tb where name = a.name) order by a.name --方法2: select a.* from tb a where not exists(select 1 from tb where name = a.name and val > a.val) --方法3: select a.* from tb a,(select name,max(val) val from tb group by name) b where a.name = b.name and a.val = b.val order by a.name --方法4: select a.* from tb a inner join (select name , max(val) val from tb group by name) b on a.name = b.name and a.val = b.val order by a.name --方法5 select a.* from tb a where 1 > (select count(*) from tb where name = a.name and val > a.val ) order by a.name
如果上述存在一个name组中有两个以上相同的val,则查询方法1-5不正确。
写法6
SELECT *
FROM (
SELECT * ,
ROW_NUMBER() OVER ( PARTITION BY name ORDER BY val DESC ) rid
FROM tb
) AS t
WHERE rid = 1
相关文章推荐
- sql server 获取每一个类别中值最大的一条数据
- sql server 获取每一个类别中值最大的一条数据
- sql server 获取每一个类别中值最大的一条数据
- 7、SQL Server:sql server 获取每一个类别中值最大的一条数据
- sql server 获取每一个类别中值最大的一条数据
- sql server 获取每一个类别中值最大的一条数据
- sql server 获取每一个类别中值最大的一条数据
- 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
- 获取分组后取某字段最大的一条记录(求每个类别中最大的值的列表)
- 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
- sql server查询一类别中或一个子类别中的最新的一条数据
- 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
- 获取最新(最大)值的一条数据select * from dbname where id=(select max(id) from dbname)
- 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
- 获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)
- SQL SERVER 获取数据库中所有的表名及表中的数据量/查看每个数据库的链接打开数量
- 通过SQL Server直接获取excel的数据
- SQL SERVER 将数据库中重复数据删除且只保留一条
- dhl:获取sql server中一条update和insert语句影响的记录数 @@rowcount 和@@identity