我想从 group by 语句中排除一列,因为它会导致一些冗余记录。有什么建议吗?
我使用Oracle,并且有一个复杂的查询,它将6个表连接在一起,并且想要使用sql聚合函数(count),而没有重复的结果。
答案 0 :(得分:3)
你不能。
使用聚合函数时,每个不是聚合的列/列表达式必须在GROUP BY中。
这完全符合逻辑。如果您没有聚合该列,那么将其从GROUP BY中排除将迫使Oracle选择一个随机值,这不是很有用。
如果您不想在GROUP BY中使用此列,则 必须决定应用于此列的聚合,以便为您的情况返回相应的数据。您无法将此责任移交给数据库引擎。