Heim > Datenbank > MySQL-Tutorial > Wie kann ich in Oracle mehrere Zeilen verketten und gruppieren?

Wie kann ich in Oracle mehrere Zeilen verketten und gruppieren?

DDD
Freigeben: 2025-01-04 05:45:39
Original
722 Leute haben es durchsucht

How Can I Concatenate and Group Multiple Rows in Oracle?

Verketten und Gruppieren mehrerer Zeilen in Oracle

Dieser Artikel befasst sich mit der Herausforderung des Verkettens und Gruppierens mehrerer Zeilen in Oracle, sodass Sie Tabellen transformieren können mit verstreuten Daten in eine besser organisierte Struktur. Stellen Sie sich das folgende Szenario vor:

Sie haben eine Tabelle mit zwei Spalten, NAME und GROUP_NAME:

NAME          GROUP_NAME
name1         groupA
name2         groupB
name5         groupC
name4         groupA
name3         groupC
Nach dem Login kopieren

Ihr Ziel ist es, ein Ergebnis zu erstellen, in dem Namen für jeden eindeutigen GROUP_NAME-Wert verkettet sind:

GROUP_NAME     NAMES
groupA         name1,name4
groupB         name2
groupC         name3,name5
Nach dem Login kopieren

In diesem Fall bietet die LISTAGG-Funktion, die in Oracle 11g und höher verfügbar ist, eine unkomplizierte Lösung Lösung:

SELECT
group_name,
LISTAGG(name, ', ')
WITHIN GROUP (ORDER BY GROUP) "names"
FROM name_table
GROUP BY group_name
Nach dem Login kopieren

Wenn Sie jedoch mit Oracle-Versionen vor 11g arbeiten, können Sie Analysen einsetzen, um das gleiche Ergebnis zu erzielen:

select grp,
    ltrim(max(sys_connect_by_path
       (name, ',' )), ',')
        scbp
  from (select name, grp,
            row_number() over
           (partition by grp
            order by name) rn
         from tab
          )
start with rn = 1
connect by prior rn = rn-1
and prior grp = grp
  group by grp
  order by grp
Nach dem Login kopieren

Durch die Nutzung sowohl von LISTAGG als auch von Analysen, Sie können mehrere Zeilen in Oracle effizient verketten und gruppieren und so Ihre Daten in eine aussagekräftigere Darstellung für weitere Analysen und Berichte umwandeln.

Das obige ist der detaillierte Inhalt vonWie kann ich in Oracle mehrere Zeilen verketten und gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage