Maison >base de données >tutoriel mysql >Comment faire pivoter des données avec plusieurs colonnes (organisation et position) dans un format plus large à l'aide de SQL ?

Comment faire pivoter des données avec plusieurs colonnes (organisation et position) dans un format plus large à l'aide de SQL ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-03 00:53:41622parcourir

How to Pivot Data with Multiple Columns (org and position) into a Wider Format Using SQL?

Pivotement des données à l'aide de plusieurs colonnes

Les requêtes pivots sont essentielles pour réorganiser les données d'un format haut et étroit vers un format large et tabulaire. Dans ce cas précis, vous devez faire pivoter les données représentées dans un format croisé avec deux colonnes, à savoir org et position, dans un format plus large avec des colonnes séparées pour chaque langue (en, fi et sv).

As vous l'avez mentionné, une requête pivot avec la commande CONNECT BY pourrait être utile. Cependant, voici une approche plus simple utilisant l'opérateur PIVOT :

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

La fonction MAX() est utilisée pour récupérer la dernière valeur associée à chaque ID utilisateur et combinaison de langue. Alternativement, vous pouvez utiliser une fonction d'agrégation comme SUM(), en fonction de vos besoins spécifiques.

Cette requête générera le résultat souhaité :

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

N'oubliez pas d'ajuster la fonction MAX() et les expressions CASE basées sur vos données et exigences réelles. Avec cette approche, vous pouvez efficacement faire pivoter vos données en utilisant plusieurs colonnes, vous donnant ainsi la flexibilité de les représenter dans un format qui convient mieux à vos besoins d'analyse et de présentation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn