簡體   English   中英

如何在單個表中合並Oracle SQL中的多個行值

[英]How to combine multiple row values in Oracle SQL in a single table

我在每學期將多個行值組合到單個列時遇到了麻煩。

該表(GENERALEDPATHWAY)具有以下列:

*學生卡

*學期

*類

* CLASS_COMBINATION(當前所有值均為null)

*年

* CLASS_GRADE

*入口點

*學位

* CLASS_DISTRIBUTION

*學位

* GRADUATED_IN

我目前僅擔心STUDENTID,SEMESTER,CLASS和Class_Combination。 每個學生都有一個唯一的ID,每個學期可能會有不同的班級組合。 我不想在每個學期為每個班級開一個單獨的行,而是將班級值放到CLASS_COMBINATION列中。 例:我只希望該學期有1行,而不是在一個學期內為5個班級安排5行,而在CLASS_COMBINATION列中將所有班級按字母順序列出。

我遇到的困難是所有信息都在一個表中,並且需要在Oracle SQL Developer中工作。

試試這個查詢:

Select studentid, semester, class,
Listagg(class) within group (order by class) as CLASS_COMBINATION
From GENERALEDPATHWAY
Group by studentid, semester, class;

如果要更新表。 然后在updatemerge查詢中使用它來更新每個記錄,然后刪除重復的行。

干杯!!

您描述的是一個聚合查詢,每個學生和一個學期有一行。

您不需要單獨的 我的建議是簡單查詢或視圖。

您的數據結構將STUDENTID描述為主鍵。 但是,您為STUDENTID指定了多行,所以出了點問題–您的解釋或數據模型。 根據您的描述,您想要:

select STUDENTID, semester,
       listagg(class ', ') within group (order by class) as classes
from GENERALEDPATHWAY
group by STUDENTID, semester;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM