Maison > base de données > tutoriel mysql > Comment faire pivoter des données au format long vers un format large dans SQLite à l'aide d'instructions JOIN ou CASE ?

Comment faire pivoter des données au format long vers un format large dans SQLite à l'aide d'instructions JOIN ou CASE ?

DDD
Libérer: 2025-01-10 12:41:46
original
276 Les gens l'ont consulté

How to Pivot Long Format Data to Wide Format in SQLite Using JOINs or CASE Statements?

SQLite Pivot : Convertir le format long en format large

Dans SQLite, le pivotement fait référence à la conversion de tableaux stockés au format long en format large pour faciliter l'analyse et le traitement des données. Ceci est particulièrement utile lorsque vous travaillez avec des données comportant plusieurs mesures ou attributs par ligne, car cela nous permet de visualiser les données de manière plus structurée et plus lisible.

Pour faire pivoter les données dans SQLite, vous pouvez utiliser l'opération JOIN combinée avec des expressions conditionnelles, ou utiliser l'instruction CASE avec GROUP BY. Voici un guide détaillé pour réaliser la fluoroscopie en utilisant les deux techniques :

Utilisez JOIN et les expressions conditionnelles

Cette méthode implique d'utiliser JOIN et des expressions conditionnelles avec la fonction SUM() pour résumer les données pour chaque colonne souhaitée.

<code class="language-sql">select
    u.stuid,
    u.name,
    s3.marks as subjectid_3,
    s4.marks as subjectid_4,
    s5.marks as subjectid_5
from
    student_info u
    left outer join markdetails s3 on
        u.stuid = s3.stuid
        and s3.subjectid = 3
    left outer join markdetails s4 on
        u.stuid = s4.stuid
        and s4.subjectid = 4
    left outer join markdetails s5 on
        u.stuid = s5.stuid
        and s5.subjectid = 5;</code>
Copier après la connexion

Utilisez l'instruction CASE et GROUP BY

Une autre approche consiste à utiliser une instruction CASE dans une clause GROUP BY. Cette technique regroupe les lignes par colonnes nécessaires et calcule les valeurs globales en fonction de différents scénarios.

<code class="language-sql">select
    si.studid,
    si.name,
    sum(case when md.subjectid = 3 then md.marks end) subjectid_3,
    sum(case when md.subjectid = 4 then md.marks end) subjectid_4,
    sum(case when md.subjectid = 5 then md.marks end) subjectid_5
from
    student_info si
join
    markdetails md on
        md.studid = si.studid
group by
    si.studid,
    si.name;</code>
Copier après la connexion

Les deux méthodes peuvent être utilisées pour faire pivoter les données dans SQLite afin de vous offrir le format large dont vous avez besoin.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal