SQL分组获取记录的第一条数据 |
您所在的位置:网站首页 › sql取第一位 › SQL分组获取记录的第一条数据 |
在查询数据时如果有重复,我们都知道可以用distinct去重,但使用distinct只能去除所有查询列都相同的记录,如果有一个字段不同,distinct是无法去重的,但我们还想要实现这样的效果,这时我们可以用partition by。 1.使用ROW_NUMBER() OVER(PARTITION BY COLUMN1 ORDER BY COLUMN2)先进行分组。(根据COLUMN1分组,在分组内部根据COLUMN2排序,结果就表示每组内部排序后的顺序编号,这个编辑在组内是连续且唯一的) 查询语句如下: select a.CompanyID,a.UserName,a.AddTime,a.JF, ROW_NUMBER() over(partition by a.CompanyID order by b.ID) as new_index FROM dbo.LB_Company a left join dbo.LB_Certificate b on a.CompanyID = b.CompanyID where a.CompanyID in (361,414,447)查询结果如下: sql语句如下: select * from(select a.CompanyID,a.UserName,a.AddTime,a.JF, ROW_NUMBER() over(partition by a.CompanyID order by b.ID) as new_index FROM dbo.LB_Company a left join dbo.LB_Certificate b on a.CompanyID = b.CompanyID where a.CompanyID in (361,414,447) ) t where t.new_index=1查询结果如下: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |