clwn.net
当前位置:首页 >> sql按字段分组,排序,并且找出每组最大的数据 >>

sql按字段分组,排序,并且找出每组最大的数据

select 星期,max(字母) as 字母 from 表 group by 星期

不知道你什么数据库,给出sqlserver和oracle的 select 星期,字母from(select rank() over(partition by 星期 order by 字母 desc) id,*from 表) t1where id=1 或者select 星期,max(字母)from 表group by 星期

select * from ( select row_number() over(partition by '分组' order by '日期') as rownum -- 排序并分组 , * -- 所需显示的字段 from 表) as T where T.rownum = 1 对每组的数据按日期排序并加上行号 取出时只取行号为1,也就是第一条数据.

select * from table group by row1 order by row2再设置自增字段,这个应该在数据录入的时候通过触发器实现,本人搞不定

分组时,只能查询group by 后的字段,以及统计函数(如sum, max等),至于其他字段,需要将分组后的结果集当做一个表与其他表连接.

select * from (select name,max(time) time from table_abcgruop by name )b, table_abcwhere con='1'and b.name=table_abc.nameand b.time=table_abc.time

你的意思是 以 x1 为条件 查 字段2 吧? 这和分组有关吗?按我的理解是这样的select 字段2 字段3 from tablename where 字段3=x1结果 b1 x1 b2 x1 b3 x1

数据表内有一个种类字段,把商品分成了N种,我想使用sql语句列出有多少种类,也就是group by 种类 ,但是我想输出时是按种类的多少进行排序,也就是历史类有100个产品 自然类有200个产品 法律类有300个产品那么就输出 法律 300自然 200历史 100select 种类,sum(数量) from 表名 group by 种类 order by sum(数量) desc试试:?>

你好~可能你讲的不是太清晰,你看下这样是否可以:select * from (select *, row_number() over(PARTITION BY A order by A Desc)as num from t1 )Twhere num=1根据A作倒序排序,之后,取你讲的最后一条记录.这个查询就是得到你第一问的结果.

group by语句必须和聚合函数一起使用.select c,max(d) from a group by c order by max(d) desc这样子可以.因为一条select语句只可以返回一个结果集此句返回按c分组后并按每组中最大的d值进行排序.

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com