Maison >base de données >tutoriel mysql >Comment créer des requêtes Crosstab dans PostgreSQL à l'aide de l'extension TableFunc?

Comment créer des requêtes Crosstab dans PostgreSQL à l'aide de l'extension TableFunc?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-25 11:02:08753parcourir

Requête Cross-Table PostgreSQL Explication détaillée: Utilisez TableFunc pour vous développer pour créer une table de perspective

How to Create Crosstab Queries in PostgreSQL Using the tablefunc Extension?

Cet article introduira en détail comment utiliser

élargir la création de requêtes de crosstab dans PostgreSQL pour réaliser la transformation des tables de perspective de données. tablefunc

Créez une requête croisée

La requête Cross-Table peut convertir les données au format de table, où la ligne représente la catégorie et les listes représentent la valeur. PostgreSQL atteint cette fonction par l'expansion

.

tablefunc Double paramètre Cross-Table Query Grammar:

Traitement du manque d'attributs:

<code class="language-sql">SELECT *
FROM crosstab(
  'SELECT row_name, category, value
   FROM base_table
   ORDER BY 1, 2',
  'SELECT DISTINCT attribute FROM base_table ORDER BY 1',
) AS ct (row_name text, column_1 type_1, ..., column_n type_n);</code>

S'il y a un manque d'attributs dans le tableau de base, les attributs sont inclus dans le deuxième paramètre Spécifie. La valeur de l'attribut manquant sera vide. Traitement de la banque d'entrée excédentaire:

Forme de paramètre unique: La chirurgie sera rejetée, priorité plus tôt.

Formulaire de paramètre double:
    Les lignes tardives couvriront la valeur existante de la même catégorie et de la même combinaison d'attribut.
  • requête de niveau croisée de niveau élevé:
  • Perspective multi-colonnes:
  • Utilisez plusieurs clauses
dans la première requête du paramètre.

Schéma alternatif de perspective dynamique: Utiliser les instructions

et
    .
  • Utiliser ORDER BY (versions postgresql 9.6 et supérieures) dans PSQL:

  • Utilisez la commande yuan pour exécuter une requête croisée -table dans psql: CASE GROUP BY Exemple de requête:

Considérez l'exemple suivant Tableau: crosstabview pour créer une table croisée basée sur la section comme ligne, statut:

crosstabview Résultat:

<code class="language-sql">\crosstabview</code>

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