获取记录集中不同组的特定记录

/****** Script for SelectTopNRows command from SSMS  ******/
/**求序列号([Serial])相同,编号([Num]主键)最大者的记录**/
  SELECT [Num]		--主键
      ,[Serial]
      ,[Depart]
      ,[Time]		--非主键(不同序列号的时间可能相同)
  FROM [Temp].[dbo].[A]
  WHERE [Num] IN (SELECT MAX([Num]) 
				  FROM [Temp].[dbo].[A]
				  GROUP BY [Serial]
				  )

/**求序列号([Serial])相同,时间([Time]非主键)最大者的记录**/
  SELECT a.[Num]	--主键
      ,a.[Serial]
      ,a.[Depart]
      ,a.[Time]		--非主键(不同序列号的时间可能相同)
  FROM [Temp].[dbo].[A] a,[Temp].[dbo].[A] b
  WHERE a.[Serial] = b.[Serial]
  GROUP BY a.[Num],a.[Serial],a.[Depart],a.[Time],b.[Serial]
  HAVING a.[Time] = MAX(b.[Time])

/**求序列号([Serial])相同,编号([Num]主键)最大者的记录**/
  SELECT a.[Num]	--主键
      ,a.[Serial]
      ,a.[Depart]
      ,a.[Time]		--非主键(不同序列号的时间可能相同)
  FROM [Temp].[dbo].[A] a,[Temp].[dbo].[A] b
  WHERE a.[Serial] = b.[Serial]
  GROUP BY a.[Num],a.[Serial],a.[Depart],a.[Time],b.[Serial]
  HAVING a.[Num] = MAX(b.[Num])

/**用下面代码 求序列号([Serial])相同,时间([Time]非主键)最大者的唯一记录错误 **/
  /*
  SELECT [Num]		--主键
      ,[Serial]
      ,[Depart]
      ,[Time]		--非主键(不同序列号的时间可能相同)
  FROM [Temp].[dbo].[A]
  WHERE [Num] IN (SELECT MAX([Time]) 
				  FROM [Temp].[dbo].[A]
				  GROUP BY [Serial]
				  )
	*/
原文地址:https://www.cnblogs.com/shenchao/p/3927382.html