Oracle 如何展平查询的数据

Oracle 如何展平查询的数据,oracle,Oracle,我目前正在使用下面的查询来提取数据,这些数据在同一个样本记录的4行中表示,并希望将其展平为每个样本1行。附上查询结果的信息,如有任何帮助,我们将不胜感激 select s.name as CRF, a.name as Aliquot_Name, a.aliquot_type, au.u_step_yield as Step_Yield, au.u_step_concentration as Step_Concentration, au. u_pooled_plasma_volume as Poo

我目前正在使用下面的查询来提取数据,这些数据在同一个样本记录的4行中表示,并希望将其展平为每个样本1行。附上查询结果的信息,如有任何帮助,我们将不胜感激

select s.name as CRF, a.name as Aliquot_Name, a.aliquot_type, au.u_step_yield as Step_Yield, au.u_step_concentration as Step_Concentration, au. u_pooled_plasma_volume as Pooled_Plasma_volume
from aliquot a 
join aliquot_user au on a.aliquot_id = au.aliquot_id 
join sample s on s.sample_id = a.SAMPLE_ID
where a.aliquot_type in ('DNA Extracted', 'Library', 'Target Enrichment', 'DNA Plasma')
order by s.name desc, a.aliquot_type, a.name, au.u_step_yield, au.u_step_concentration, au.u_pooled_plasma_volume;
CRF小份“名称小份”U型步骤“产量步骤”浓度汇总“血浆”体积
CRF007650 PE-0046758 DNA血浆10
CRF007650 LCNL-47275图书馆2178 36
CRF007650 HCNLS-47467目标浓缩105 2
CRF007649 1146667362提取的DNA 451 6
CRF007649 PE-0046774 DNA血浆10
CRF007649 LCNL-47291库3543 59
CRF007649 HCNLS-47483目标浓缩132 2
CRF007648 1146668498 DNA提取166 2
CRF007648 PE-0046755 DNA血浆9
CRF007648 LCNL-47272库3881 65
CRF007648 HCNLS-47463目标浓缩381 6
CRF007647 1146635220提取的DNA 29 0
CRF007647 PE-0046764 DNA血浆8
CRF007647 LCNL-47281图书馆1274 21
CRF007647 HCNLS-47473目标浓缩57 1
CRF007646 1146736347提取的DNA 67 1

我想你必须更具体一些。 没有表的信息。哪个是pk,哪个不是。 现在我唯一能说的是,若要展平行,必须加入同一个表。
如果你想通过查询得到答案,你必须写下你的表格信息,其他人可以帮助人们回答你的问题。

据我所知,你的数据表a中有4个条目,它们的a.aliquot类型不同(“DNA提取”、“库”、“目标富集”、“DNA血浆”)。你要给4列相应的等分名称(一列表示“提取的DNA”等)

您可以使用4列和子选择,在子选择中从等分中读取相应的数据,因此必须退出联接

a.aliquot_id = au.aliquot_id
例如:

select s.name as CRF, (select a.aliquot_type from aliquot where a.aliquot_type = 'DNA Extracted' and ....) col1,  (select a.aliquot_type from aliquot where a.aliquot_type = 'Library' and ....) col2, ...

有三个表格正在使用,即等分、等分用户和样本。等分和等分用户表上的主键是等分ID,样本表上的主键是样本ID。等分和等分用户是给定系统在系统上的子项,它们具有样本ID信息。