# Write your MySQL query statement below
select employee_id,department_id
from employee
group by employee_id
having count(department_id)=1 or primary_flag='Y'
为什么这样写会报错
【以下回答由 GPT 生成】
这个问题是因为在MySQL中,当使用GROUP BY子句后,只有在SELECT列表中的列可以被SELECT语句选中,其他列都需要被GROUP BY子句选中或者用聚合函数进行处理。
在这个查询中,HAVING子句尝试筛选符合条件的行,但它使用了不在GROUP BY中的列。
要解决这个问题,你可以将非聚合列添加到GROUP BY子句中,或者使用一个聚合函数对其进行处理。在这个查询中,你可以将HAVING子句中的非聚合列添加到GROUP BY子句中。
下面是修改后的代码:
# Write your MySQL query statement below
SELECT employee_id, department_id
FROM employee
GROUP BY employee_id, department_id
HAVING COUNT(department_id) = 1 OR primary_flag='Y';
这样修改后,查询就可以正常执行了。
【相关推荐】