如何在SQL视图中避免GROUP BY

did*_*ido 2 sql sql-server group-by sql-server-2008

我有一个SQL视图.示例如下.问题是我想使用所有字段但我不想按每个字段分组.我怎么能绕过那个?我只需要在fieldA上进行分组,但不需要对其他人进行分组...实际上与其他人分组会混淆我想要查看的数据.我正在使用SQL Server 2008.谢谢!

select 
fieldA,
fieldB,
fieldC,
fieldD,
....
from my_table as a join other_table b on a.id=b.id
group by fieldA, fieldB, fieldC, fieldD
Run Code Online (Sandbox Code Playgroud)

Ber*_*ert 8

通常,当我想选择几个字段,并根据其中一个字段聚合某些内容时,我将在派生表中执行聚合并加入到我想要选择的表中,如下所示:

select fieldA, thingYouWantToAggregate, fieldB, fieldC, fieldD
from my_table
inner join
(
    select fieldA, thingYouWantToAggregate
    from my_table
    group by fieldA

) rsAggregated on rsAggregated.fieldA = my_table.fieldA
Run Code Online (Sandbox Code Playgroud)


Adu*_*cci 4

您需要对不想包含在分组依据中的列使用聚合函数。我通常使用min

select 
  fieldA,
  min(fieldB),
  min(fieldC),
  min(fieldD),
....
from my_table as a join other_table b on a.id=b.id
group by fieldA
Run Code Online (Sandbox Code Playgroud)