Comment le groupe 3 colonnes en une seule dans SQL
J'ai un tableau à trois colonnes: macolonne, myColumn2 et myColumn3. Les trois colonnes peuvent avoir une valeur différente, mais ils sont tous du même type.
J'ai besoin de faire une jointure tels que je les fusionner tous les éléments dans les trois colonnes, et puis de les regrouper par
Si j'avais une seule colonne, il serait fait comme ceci:
select distinct (myColumn), COUNT(myColumn) as 'TotalF'
from FormularioCorto
where idEvento = @idEvento and myColumn <> ''
group by myColumn
La question est:
Comment dois-je faire un TSQL déclaration qui va permettre de me joindre à trois colonnes, puis de les regrouper par?
Edit: voici un exemple de données
J'ai une table qui comporte 3 colonnes avec le même type de
columna columnb columnc
a a b
b a b
c c d
J'ai besoin d'exécuter un tsql que la fusion des 3 colonnes et de groupe, pour obtenir un résultat comme
newcolumn count
a 3
b 3
c 2
d 1
Des idées?
Merci d'avance
Il n'est pas très clair ce que vous voulez. Pourquoi ne pas vous ajouter d'un échantillon de données et les résultats attendus fondées sur l'échantillon à votre question?
La combinaison de trois requêtes (un pour chaque colonne) à l'aide de l'UNION de TOUS, comme indiqué dans ma réponse œuvres. Avez-vous l'essayer?
Merci pour votre aide Brian. Vous m'avez aidé à terminer la procédure stockée j'avais besoin.
OriginalL'auteur xmorera | 2011-11-23
Vous devez vous connecter pour publier un commentaire.
Je pense que tu veux dire concaténer plutôt que de se JOINDRE. Se JOINDRE a un très signification spécifique avec SQL. Utiliser le opérateur + pour concaténer des chaînes champs.
OriginalL'auteur Nathanial Woolls
C'est dur à dire sans quelques exemples de données et de sortie souhaité, mais une supposition serait quelque chose comme:
Ou tout simplement pour l'exemple des données et résultat:
OriginalL'auteur Brian
La méthode CONCAT() la fonction concatène des champs et des cordes.
Info:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat
Remarque: Vous devriez reconsidérer votre structure, même si, comme cela se révélera être douloureusement lente lorsque vous ajoutez plusieurs enregistrements.
Notez que la question d'origine spécifiquement demandé un TSQL solution. La fonction CONCAT n'existe pas dans TSQL / SQL Server. Le moyen le plus approprié pour concaténer des chaînes en TSQL est l'aide de l'opérateur+.
OriginalL'auteur Michael Leaney
OriginalL'auteur Nighil
Si je suis la compréhension de votre question, alors vous veulent simplement 2 colonnes (une identification de l'id de comptage et l'autre donnant la valeur de l'identifiant. Si cela est correct, utilisez simplement votre requête existante pour chaque colonne et de l'union les résultats.
Par exemple;
etc etc.
OriginalL'auteur Mr Moose
Essayez ceci:
Il ne sera pas rapide, mais il devrait fonctionner. Si vous avez besoin de délimiter les données dans les colonnes avec d'autres caractères, vous pouvez essayer ceci:
Si les types de colonnes ne sont pas les mêmes (vous avez dit qu'ils étaient), vous aurez besoin de les jeter à un type similaire.
OriginalL'auteur Chris Porter