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
。您需要发布一些带有预期结果的示例数据来帮助您