Tsql 如何在不使用聚合函数的情况下对表中的行进行分组?

Tsql 如何在不使用聚合函数的情况下对表中的行进行分组?,tsql,sql-server-2012,Tsql,Sql Server 2012,示例: SELECT Equip.name, equip.type, region.regionname, region.equipfk FROM Equip INNER JOIN region on Equip.equippk = region.equipfk GROUP BY Equip.Name, region.equipfk 预期产出: name type regionname equ

示例:

SELECT 
   Equip.name, equip.type, region.regionname, region.equipfk 
FROM 
   Equip 
INNER JOIN 
   region on Equip.equippk = region.equipfk   
GROUP BY 
   Equip.Name, region.equipfk                  
预期产出:

name    type       regionname    equipfk 
----------------------------------------
TCT     Steel      detroit       8235
TCT     steel      detroit       8235
GTH     COPPER     michigan      8569
GCT     COPPER     michigan      8569
我有一个包含10列的表。我想使用GROUPBY子句通过一些ID对每一行进行分组。我不想在select查询中使用任何聚合函数。是否有其他方法可以使用group by子句并避免select查询中的聚合函数


提前感谢。

听起来您使用了
分组依据
,试图对行进行排序(这只是由于巧合的副作用,但不能保证)。如果是这种情况,您需要
orderby

SELECT 
   Equip.name, equip.type, region.regionname, region.equipfk 
FROM 
   Equip 
INNER JOIN 
   region on Equip.equippk = region.equipfk   
ORDER BY 
   Equip.Name, region.equipfk   

groupby
DISTINCT
都可能会产生似乎已排序的输出-但这只是它们的实现方式和许多事情的副作用(服务器上的负载、服务器配置、热修复程序、服务包、主要升级)可以更改返回行的顺序-,除非您还有一个
order BY
子句。

您正在搜索
DISTINCT
?如果没有,假设有一些列要按分组,而在选择中有一些其他列,那么如何确定这些其他列的值?简言之,不,您不能。现在看来您实际上是在寻找
orderby
而不是
groupby
。您需要发布一些带有预期结果的示例数据来帮助您