这是我的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表达式
没有组状态表,表格如下:
我想按task_id计算每个任务和小组的志愿者人数,但经过几个小时的尝试后我放弃了)
答案 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