[英]How to concatenate all entries returned by a joined subquery (related to the main table id) into a single combined column?
假设我有一个名为Employee
的主驱动程序表,其中包含以下数据和列:
EMPLOYEE_ID EMPLOYEE_NAME EMPLOYEE_CAR EMPLOYEE_AGE
----------------------------------------------------------------
1 Mike Camry 35
2 Mark Civic 33
3 Helen Beetle 25
我还有一个名为Employee_Feedback
表,其中包含以下数据和列:
EMPLOYEE_FEEDBACK_ID EMPLOYEE_ID FEEDBACK_COMMENT_TX
---------------------------------------------------------------
1 1 Very Good
2 1 Average
3 1 Phenomenal
4 2 Okay
5 2 NO Comment
6 3 Excellent
7 3 Hilarious
从数据Employee
和Employee_Feedback
表,我想我的查询能够返回所有行的员工,也给所有从“相关”员工feedback_comments的串联Employee_feedback
到每名员工的一列。 它看起来像这样:
EMPLOYEE_NAME EMPLOYEE_CAR EMPLOYEE_AGE Comments
------------------------------------------------------------------------
Mike Camry 35 Very Good Average Phenomenal
Mark Civic 33 Okay No Comment
Helen Beetle 25 Excellent Hilarious
什么是一个很好的查询来做到这一点? 我已经尝试了以下方法,但均未成功:
select employee_name
, employee_car
, employee_age
, listagg(feedback_comment_Tx, ' ') within group (order by e.employee_id)
from employee e
join employee_feedback ef ON ef.employee_id = e.employee_id;
我是否缺少细节? 提前致谢!
您需要在最后添加一个group by
子句:
group by employee_name, employee_car, employee_age
编辑:在评论中包含过滤器,您可以尝试以下操作:
select employee_name
, employee_car
, employee_age
, listagg(feedback_comment_Tx, ' ') within group (order by e.employee_id)
from employee e
join employee_feedback ef ON ef.employee_id = e.employee_id
where nvl(initcap(feedback_comment_Tx),'No Comment') != 'No Comment'
group by employee_name, employee_car, employee_age;
您是否试图在查询末尾group by e.employee_id
添加group by e.employee_id
select employee_name
, employee_car
, employee_age
, listagg(feedback_comment_Tx, ' ') within group (order by e.employee_id)
from employee e join employee_feedback ef ON ef.employee_id = e.employee_id
group by e.employee_id
select employee_name
, employee_car
, employee_age
, listagg(feedback_comment_Tx, ' ') within group (order by ef.EMPLOYEE_FEEDBACK_ID)
from employee e
join employee_feedback ef ON ef.employee_id = e.employee_id
group by e.employee_id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.