-1
votes

Comment afficher une valorisation variable dans trois colonnes distinctes à l'aide de requêtes MySQL

J'ai un nom de colonne "pression" qui a trois valeurs (haut, bas, normal).

Maintenant, je veux montrer la somme de haut, basse et normale dans trois colonnes distinctes. P>

p>

Desired output
----------------------
pressure:   high    low   Normal
Number:      ?       ?     ?


8 commentaires

Google "SQL PIVOT QUERY" pour commencer.


S'il vous plaît définir: "normal". Voulez-vous dire la valeur de la moyenne arithmétique, la valeur modale ou la médiane? Ou une autre valeur, telle qu'une liaison de 95%?


Merci beaucoup. J'ai un nom de colonne "pression" qui a des valeurs (haut, bas, normal). Maintenant, je voulais compter ces trois valeurs et la mettre dans les colonnes séparées. Veuillez suggérer une requête SQL.


J'espère que je décris ma requête clairement


@Awan Non, vous ne décrivez pas votre problème clairement parce que vous n'avez toujours pas posté votre requête d'origine ni décrit comment votre rejoindre fonctionne (et pourquoi vous utilisez un rejoindre En premier lieu quand on dirait que vous n'avez qu'une seule table avec des valeurs scalaires pour travailler)


Bonjour Tim et Dai, merci beaucoup pour votre réponse rapide. J'ai trouvé la solution de ma requête: (partie I) Sélectionnez la somme (élevée) comme Haut1, somme (faible) comme bas1, somme (normale) comme normale1 de (Sélectionnez A2.Pressure, A2.Countwp, B.High, c. faible, d.normal à partir de (Sélectionnez A1.Pressure, A1.Countwp, B.High, C.LOW (SELECT A.PRESSURE, A.COUTWP, B.HIGE DE (SELECT DE PRESSION, COMPTE (PRESSION) COMME COMPTHP DE T1 groupe par pression) comme une jointure gauche (sélectionnez la pression, le nombre de comptes (pression) aussi élevée de T1 où la pression = «haut» groupe par pression) comme B sur A.Pressure = B.Pressure) comme A1


Joindre gauche (sélectionnez la pression, le comptage (pression) comme bas de T1 où pression = «bas» groupe par pression) comme C sur A1.Pressure = c.Presure) en tant que joint gauche (pression) (pression) à partir de t1 où pression = "normal" groupe par pression) comme d d sur a2.ressure = d.ressure) comme e


@Dai, selon vos yeux, j'ai édité ma requête. S'il vous plaît n'oubliez pas de contourner le marquage «négatif».


3 Réponses :


0
votes

En supposant que vous avez une requête comme celle-ci: xxx

alors vous pouvez le faire: xxx

si vous voulez la valeur modale , c'est un peu plus impliqué. Comme cela est probablement des données continues, vous aurez besoin de rond pour obtenir des valeurs discrètes xxx

... ce qui peut être joint à un Croix rejoindre qui va bien car chaque sous-requête ne renvoie qu'une seule ligne: xxx


2 commentaires

Merci encore de la réponse. Mon nom de colonne 'pression' a des valeurs de texte (haut, bas, normal). Maintenant, je voulais les colonner séparément et montrer dans ma requête SQL. Par exemple: ID Wrressure 1 High 2 Basse 3 Normal 4 High 5 Normal 6 High, Maintenant, je voulais montrer comme: Haute Normal 3 2 2


@Awan Votre publication originale n'a fait aucune mention de votre conception de données source ou de colonnes de texte. Veuillez éditer votre question initiale.



0
votes

avec un schéma de table comme celui-ci (y compris des données d'échantillon): xxx pré>

une solution serait d'interroger quelque chose comme ceci: p> xxx pré>

Cela devrait entraîner quelque chose comme ceci: p>

|   data   | high | low | normal |
| pressure |   2  |  1  |    2   |


1 commentaires

@Dear Koderj, merci beaucoup. Son travail bien et beaucoup plus simple que la requête que j'ai postée plus tôt. Grande aide. Très appréciée!!



0
votes

Je pense que vous avez besoin de quelque chose sur ces lignes xxx


0 commentaires