问题:Group BY子句显示先前由where子句筛选出的结果

时间:2010-10-28 07:01:47

标签: sql

我有类似的东西

select A, B, C
from tableA
where A = '123'
group by B

,结果包括A不是'123'的条目。为什么这不是我预期的结果呢?

感谢

数据库有16k条目

实际结果(7k条目):A ='123'和A ='other'的条目混合

预期结果(5k条目):所有条目A ='123'

1 个答案:

答案 0 :(得分:1)

您的查询将无效,因为A和C不在条件内。对于C,您必须使用Min,Max,Avg,Count,...聚合函数,而对于A,您可以使用聚合函数或者类似于A的diretly值:

Select Max(A) as A, B, Max(C) as C 
From Table
Where A='123'
Group by B

或者

Select '123' as A, B, Max(C) as C 
From Table
Where A='123'
Group by B