


Comment faire pivoter des lignes vers des colonnes dans SQL sans agrégation ?
Opération SQL de ligne à colonne sans fonction d'agrégation
Dans le traitement des données, la conversion des données de ligne en données de colonne (ligne en colonne) est un besoin courant, ce qui est particulièrement utile pour résumer ou analyser des données en fonction de plusieurs attributs.
La fonction PIVOT dans SQL peut implémenter des opérations de ligne à colonne. Cependant, la fonction PIVOT doit souvent être combinée avec une fonction d'agrégation (telle que MAX ou MIN) pour gérer les valeurs pivotées. Mais dans certains cas, nous souhaitons effectuer un simple pivotement de valeur sans aucune opération d’agrégation.
Par exemple, considérons un tableau nommé « TEST » avec les colonnes suivantes :
- TEST_NAME
- SBNO
- VAL
Les colonnes VAL contiennent différents types de données (entier, décimal ou varchar). Le but est de transformer la colonne TEST_NAME en trois colonnes distinctes (Test1, Test2 et Test3) sans aucune agrégation :
<code>源表 ╔═══════════╦══════╦═══════╗ ║ TEST_NAME ║ SBNO ║ VAL ║ ╠═══════════╬══════╬═══════╣ ║ Test1 ║ 1 ║ 0.304 ║ ║ Test1 ║ 2 ║ 0.31 ║ ║ Test1 ║ 3 ║ 0.306 ║ ║ Test2 ║ 1 ║ 2.3 ║ ║ Test2 ║ 2 ║ 2.5 ║ ║ Test2 ║ 3 ║ 2.4 ║ ║ Test3 ║ 1 ║ PASS ║ ║ Test3 ║ 2 ║ PASS ║ ╚═══════════╩══════╩═══════╝</code>
<code>目标输出 ╔══════════════════════════╗ ║ SBNO Test1 Test2 Test3 ║ ╠══════════════════════════╣ ║ 1 0.304 2.3 PASS ║ ║ 2 0.31 2.5 PASS ║ ║ 3 0.306 2.4 NULL ║ ╚══════════════════════════╝</code>
Pour y parvenir sans utiliser de fonctions d'agrégation, nous pouvons utiliser du SQL dynamique :
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX) select @cols = STUFF((SELECT distinct ',' + QUOTENAME(TEST_NAME) from yourtable FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') set @query = 'SELECT sbno,' + @cols + ' from ( select test_name, sbno, val from yourtable ) x pivot ( max(val) for test_name in (' + @cols + ') ) p ' execute(@query)
Cette requête génère une instruction SQL dynamique qui contient toutes les valeurs uniques de TEST_NAME en tant que noms de colonnes. Il utilise ensuite la fonction PIVOT pour convertir les données de ligne en colonnes sans appliquer aucune agrégation.
L'exécution de ce SQL produira le résultat souhaité, qui est un tableau avec les colonnes pivot Test1, Test2 et Test3 contenant les valeurs VAL correspondantes de la table d'origine.
Cette sortie révisée conserve le sens original tout en utilisant une formulation et une structure de phrase légèrement différentes. Les détails techniques restent inchangés.
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!

MySQLViewShavelimitations: 1) Theydon'tsupportalLSQLOPERations, restreignantDatamanipulation à travers la vue

La bonne gestion de la gestion de la direction

MySQLDOES NONTIMPOSEAHARDLIMITORSTRIGRERS, BUTPRATICALFACTORSEDERTERMINETHEIREFFECTYUSE: 1) ServerConfiguration ImpactStriggerManagement; 2) ComplexTriggersInCreasgeSystemload; 3) LargerTableSlowtriggerPerformance; 4) HighCunCurrencyCanCauseTr fichestring; 5) M) M

Oui, il estafetostoreblobdatainmysql, maisonssider cesfacteurs: 1) stockage: BlobScConSugnifants espace, potentiellement en augmentation

L'ajout d'utilisateurs de MySQL via l'interface Web PHP peut utiliser les extensions MySQLI. Les étapes sont les suivantes: 1. Connectez-vous à la base de données MySQL et utilisez l'extension MySQLI. 2. Créez un utilisateur, utilisez l'instruction CreateUser et utilisez la fonction Password () pour crypter le mot de passe. 3. Empêchez l'injection SQL et utilisez la fonction mysqli_real_escape_string () pour traiter l'entrée de l'utilisateur. 4. Attribuez des autorisations aux nouveaux utilisateurs et utilisez la déclaration de subvention.

MySQL'sblobissuitable ForstoringBinaryDatawithInarelationDatabase, WhileLenosqloloptionsLikEmongoDB, redis et Cassandraofferflexible, ScalablesButions forununstructureddata.blobissimplerbutcanslowdownporduit

ToaddauserRinmysql, utilisation: CreateUser'Username '@' host'identifiedBy'password '; ici'showtodoitsecurely: 1) ChoosetheHostCarelyToCon trolaccess.2) setResourcelimits withoptionslikemax_queries_per_hour.3) usestrong, uniquepasswords.4) Enforcessl / tlsconnectionwith

ToavoidcomMonmistakeswithstringDatatyPesInmysql, compréhension de compréhension, chooseTherightType, andManageEncodingAndCollationSettingSeffectively.1) usECHARFORFIXED-LEGLINGSTRING


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Dreamweaver Mac
Outils de développement Web visuel

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel
