这是我写的代码。
SELECT
substr(to_char(birthday, 'YYYY'), 1, 3)
|| '0',
emp_type,
AVG(pay)
FROM
emp2
WHERE
substr(to_char(birthday, 'YYYY'), 1, 3) IN (
'196',
'197',
'198',
'199'
)
GROUP BY
substr(to_char(birthday, 'YYYY'), 1, 3),
emp_type;代码很简单,只需将20世纪60年代、70年代、80年代、90年代的人分组,然后使用AVG(PAY)找到平均工资
当我运行这段代码时,没有出现任何问题或警告,但是Oracle SQL Devloper向我展示了这一点。

很抱歉我的言辞。无论如何,警告说SELECT列表与GROUP BY不同。
我知道这是一个次要的东西,但我认为我选择的那个肯定是在GROUP BY中。请告诉我我的想法是对还是错。下面是代码中使用的结果和数据表。


发布于 2020-01-28 15:15:34
group by需要包含您选择的列。在您的示例中,您选择了2列:
SELECT
substr(to_char(birthday, 'YYYY'), 1, 3) || '0',
emp_type,
...但group by子句中缺少连接的“0”,因此group by中的2列与select子句中的列不同。
GROUP BY
substr(to_char(birthday, 'YYYY'), 1, 3),
emp_type;尝试将其更改为
GROUP BY
substr(to_char(birthday, 'YYYY'), 1, 3) || '0',
emp_type;https://stackoverflow.com/questions/59942633
复制相似问题