SQL Server查询返回重复的结果,因为多个列逐列

时间:2015-07-04 12:44:55

标签: sql sql-server duplicates distinct sql-server-2014

这是我的问题:

public class Code{
    private final String code;

    @JsonCreator
    public Code(@JsonProperty("code") String code) {
        this.code = code;
    }
    //Getters omitted
}

问题:如何在查询中按字段删除多个组?

由于这两个" Origin.City,Destination.City"我得到了重复的数据。当我逐个删除任何一列时出现列错误:

  

Msg 8120,Level 16,State 1,Line 22
  专栏' City.City'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

我想使用group by和#34; group by Booking.BookingID"

1 个答案:

答案 0 :(得分:2)

你需要使用聚合函数,如错误所述。您赢得的所有列都必须使用聚合。

如果基于Booking.BookingId只有一个组,则需要在所选的所有其他列上使用聚合函数。例如:

SELECT Booking.BookingId, MAX(City.City) as City
FROM Booking
GROUP BY Booking.BookingId

即使City.City的所有行显示相同的值,SQL Server也不会执行您的查询,因为可能出现具有不同内容的重复值。这样,您需要在所有未分组的列上定义正确的聚合(例如MINMAXAVG等)。