为什么这个SQL查询只返回一个结果?
select data_value-AVG(data_value) from data
虽然预期结果是多行,但与每个data_value
的平均值不同。
答案 0 :(得分:1)
您不能将单个列(在本例中为data_value
)视为分组列和非分组列。您必须从不同的查询中获取它们并加入它们:
SELECT data_value - avg_data_value
FROM data
CROSS JOIN (SELECT AVG(data_value) AS avg_data_value
FROM data) agg
如果您不希望两次获得相同的data_value
,则可以在查询中添加distinct
修饰符:
SELECT DISTINCT data_value - avg_data_value
FROM data
CROSS JOIN (SELECT AVG(data_value) AS avg_data_value
FROM data) agg