[英]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.