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!