我想总结一个包含很多列的表格,任何建议
Select column(names), Count(*)
from table
Group by column(names)
导致
**Cloumn** **Count**
Column 1 24
Column 2 75
column 3 35
。 。 。 。 。
答案 0 :(得分:1)
我会使用APPLY
:
SELECT tt.colname, COUNT(*)
FROM table t CROSS APPLY
( VALUES ('Column1'), ('Column2'), ('Column3'), . .
) tt (colname)
GROUP BY tt.colname;
如果您只想计算非空值,则还要包括列值:
SELECT tt.colname, COUNT(tt.colval)
FROM table t CROSS APPLY
( VALUES ('Column1', Column1),
('Column2', Column2),
('Column3', Column3),
. . .
) tt (colname, colval)
GROUP BY tt.colname;
答案 1 :(得分:0)
假设大多数人将Microsoft SQL Server引用为SQL(不正确,但很常见),就取消它们
SELECT ColumnName, Count(Value)
FROM (
SELECT ColumnName, Value
FROM yourTable
CROSS APPLY (
VALUES('Column1', Column1),('Column2', Column2),('Column3', Column3)
) A(ColumnName, Value)
) T
GROUP BY ColumnName