SQL Join语句+ COUNT不起作用

时间:2016-11-27 18:02:21

标签: oracle group-by

这是我的SQL(Oracle)代码:

SELECT a.Task_id, a.Activity_desc AS "ACTIVITY DESCRIPTION" ,
       a.Activity_date || ' (' || a.Activity_day || ')' AS "ACTIVITY DATE",
       pr.Project_name, COUNT(a.Volunteer_id)
FROM task_activity a
JOIN task t
ON a.Task_id = t.Task_id
JOIN project pr
ON t.Project_id = pr.Project_id
GROUP BY a.Task_id
ORDER BY Task_id

错误:

ORA-00979:不是GROUP BY表达式

没有组状态表,表格如下:

enter image description here

我想按task_id计算每个任务和小组的志愿者人数,但经过几个小时的尝试后我放弃了)

1 个答案:

答案 0 :(得分:1)

您需要按所有非聚合值进行分组。从一些小的东西开始,然后建立起来。

SELECT a.Activity_desc, COUNT(a.Volunteer_id) countVolunteer
FROM task_activity a
GROUP BY a.Activity_desc

检查返回每个活动的计数,然后慢慢地将其他属性添加到SELECT和GROUP BY部分,例如。

SELECT a.Activity_desc, t.Task_id, COUNT(a.Volunteer_id) countVolunteer
FROM task_activity a
JOIN task t
ON a.Task_id = t.Task_id
GROUP BY a.Activity_desc,t.Task_id