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

Sql 问题:GROUPBY子句显示先前由where子句筛选出的结果,sql,Sql,我有类似的东西 选择A、B、C 来自表a 其中A='123' B组 结果包括A不是“123”的条目。为什么这不是我预期的结果 谢谢 数据库有16k个条目 实际结果(7k个条目):包含a='123'和a='other'的条目 预期结果(5k个条目):所有带有A='123'的条目将无法作为A进行查询,而C不在group by条件内。对于C,必须使用最小值、最大值、平均值、计数,。。。聚合函数,而对于,可以使用聚合函数或直接值,例如: Select Max(A) as A, B, Max(C) a

我有类似的东西


选择A、B、C
来自表a
其中A='123'
B组

结果包括A不是“123”的条目。为什么这不是我预期的结果

谢谢

数据库有16k个条目

实际结果(7k个条目):包含a='123'和a='other'的条目


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

的条目将无法作为A进行查询,而C不在group by条件内。对于C,必须使用最小值、最大值、平均值、计数,。。。聚合函数,而对于,可以使用聚合函数或直接值,例如:

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


你能举一个具体价值观的例子吗?表中的、查询返回的以及所需的。这怎么可能?您必须使用一些聚合函数对未按分组的值进行聚合:
选择聚合(A),B,SUM(C),其中A='123'按B分组
请发布您的实际代码好吗?目前,该查询只能返回A=123——如果您看到其他值,则您的代码必须与发布的代码明显不同。
Select '123' as A, B, Max(C) as C 
From Table
Where A='123'
Group by B