我有一个包含三列的表:myColumn、myColumn2 和 myColumn3。三列可以有不同的值,但它们都是相同的类型。
我需要进行联接,以便合并三列中的所有项目,然后进行分组
如果我有一个列,它会像这样完成:
select distinct (myColumn), COUNT(myColumn) as 'TotalF'
from FormularioCorto
where idEvento = @idEvento and myColumn <> ''
group by myColumn
问题是: 如何执行允许我连接三列然后进行分组的 TSQL 语句?
编辑:这是示例数据 我有一个包含 3 列且类型相同的表格
columna columnb columnc
a a b
b a b
c c d
我需要运行一个 tsql 来合并 3 列并进行分组,以获得类似于
的结果newcolumn count
a 3
b 3
c 2
d 1
有什么想法吗?
提前致谢
最佳答案
如果没有一些示例数据和所需的输出,很难判断,但猜测如下:
SELECT MyCol as MyColumn, Count(*) as 'TotalF'
FROM
(
SELECT myColumn MyCol from FormularioCorto
WHERE idEvento = @idEvento AND myColumn <> ''
UNION ALL
SELECT myColumn2 MyCol from FormularioCorto
WHERE idEvento = @idEvento AND myColumn2 <> ''
UNION ALL
SELECT myColumn3 MyCol from FormularioCorto
WHERE idEvento = @idEvento) AND myColumn3 <> ''
) A
GROUP BY MyCol;
或者仅获取示例数据和结果:
SELECT NewColumn, Count(*) as Count FROM
(
SELECT columna as NewColumn FROM SomeTable
UNION ALL
SELECT columnb as NewColumn FROM SomeTable
UNION ALL
SELECT columnc as NewColumn FROM SomeTable
) A
Group by NewColumn
关于sql - 如何在 SQL 中将 3 列分组为一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8237285/