Pivotieren von Daten mithilfe mehrerer Spalten
Pivot-Abfragen sind unerlässlich, um Daten aus einem hohen und schmalen Format in ein breites und tabellarisches Format umzuordnen. In diesem speziellen Fall müssen Sie Daten, die in einem Pivotformat mit zwei Spalten, nämlich „org“ und „position“, dargestellt werden, in ein breiteres Format mit separaten Spalten für jede Sprache (en, fi und sv) umwandeln.
As Sie haben erwähnt, dass eine Pivot-Abfrage mit dem Befehl CONNECT BY nützlich sein könnte. Hier ist jedoch ein einfacherer Ansatz mit dem PIVOT-Operator:
SELECT user_id, MAX(CASE WHEN lang = 'en' THEN org END) AS org_en, MAX(CASE WHEN lang = 'en' THEN position END) AS position_en, MAX(CASE WHEN lang = 'fi' THEN org END) AS org_fi, MAX(CASE WHEN lang = 'fi' THEN position END) AS position_fi, MAX(CASE WHEN lang = 'sv' THEN org END) AS org_sv, MAX(CASE WHEN lang = 'sv' THEN position END) AS position_sv FROM source GROUP BY user_id
Die Funktion MAX() wird verwendet, um den neuesten Wert abzurufen, der jeder Kombination aus Benutzer-ID und Sprache zugeordnet ist. Alternativ können Sie je nach Ihren spezifischen Anforderungen eine Aggregationsfunktion wie SUM() verwenden.
Diese Abfrage generiert die gewünschte Ausgabe:
user_id | org_fi | position_fi | org_en | position_en | org_sv | position_sv |
---|---|---|---|---|---|---|
1001 | USD | Bossa | USE | Boss | NULL | NULL |
1002 | NULL | NULL | NULL | NULL | GWR | Dim |
1003 | GGA | DCS | NULL | NULL | GCA | DDD |
Denken Sie daran, die Funktion MAX() anzupassen und die CASE-Ausdrücke basierend auf Ihren tatsächlichen Daten und Anforderungen. Mit diesem Ansatz können Sie Ihre Daten mithilfe mehrerer Spalten effektiv schwenken und haben so die Flexibilität, sie in einem Format darzustellen, das Ihren Analyse- und Präsentationsanforderungen besser entspricht.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten mit mehreren Spalten (Organisation und Position) mithilfe von SQL in ein breiteres Format umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!