如何在SQL中将3列分组为单个列

xmo*_*era 4 sql sql-server stored-procedures

我有一个包含三列的表:myColumn,myColumn2和myColumn3.这三列可以具有不同的值,但它们都是相同的类型.

我需要进行连接,以便合并三列中的所有项目然后分组

如果我有一个列,就会这样做:

select distinct (myColumn), COUNT(myColumn) as 'TotalF' 
from FormularioCorto 
where idEvento = @idEvento and myColumn <> ''
group by myColumn 
Run Code Online (Sandbox Code Playgroud)

问题是:如何执行TSQL语句,允许我加入三列然后分组?

编辑:这里是示例数据我有一个表有3列相同类型的表

columna columnb columnc
a              a       b
b              a       b
c              c       d
Run Code Online (Sandbox Code Playgroud)

我需要运行一个将要合并3列和分组的tsql,以获得结果

newcolumn   count
a             3
b             3
c             2
d             1
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

提前致谢

Bri*_*ian 5

没有一些样本数据和期望的输出很难说,但猜测将是这样的:

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;
Run Code Online (Sandbox Code Playgroud)

或者只是示例数据和结果:

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
Run Code Online (Sandbox Code Playgroud)


Nat*_*lls 2

我认为你的意思是连接而不是连接。JOIN 对于 SQL 具有非常特定的含义。使用+ 运算符连接字符串字段。