sql查询 分组后 每组某字段值最大的一行所有列 200

 我来答
sysplay
2017-08-06 · TA获得超过1155个赞
知道小有建树答主
回答量:663
采纳率:86%
帮助的人:533万
展开全部

按照员工ID分组,取出ID值最大的一行

1、第一个方法,需要考虑ID有重复值的问题,如果最大值存在重复值,那么结果也重复。

SELECT *
  FROM 员工信息变化表 T1
 WHERE id = (SELECT Max (id)
               FROM 员工信息变化表 T2
              WHERE T1.员工ID = T2.员工ID)

2、第二个方法:该语句是在SQL Server中编写的,应该不适用于MySQ和Oracle。排名函数是SQL Server2005中新增的功能,不适用SQL Server 2000

SELECT *
  FROM (SELECT row_number () OVER (PARTITION BY 员工ID ORDER BY id DESC)
                  AS ROW_NUM,
               *
          FROM 员工信息变化表) T1
 WHERE ROW_NUM = 1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式