Sql 按返回列名和行计数的所有列计算所有行
我想总结一个有很多列的表格,有什么建议吗Sql 按返回列名和行计数的所有列计算所有行,sql,sql-server,group-by,unpivot,Sql,Sql Server,Group By,Unpivot,我想总结一个有很多列的表格,有什么建议吗 Select column(names), Count(*) from table Group by column(names) 导致 **Cloumn** **Count** Column 1 24 Column 2 75 column 3 35 。 . . . . 假设大多数人将Microsoft SQL Server称为SQL不正确,但通常会将其取消 SELECT ColumnName,
Select column(names), Count(*)
from table
Group by column(names)
导致
**Cloumn** **Count**
Column 1 24
Column 2 75
column 3 35
。
. .
. . 假设大多数人将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
我会使用以下方法:
如果希望只计算非空值,则还包括列值:
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;
我使用的是mssql server 2016Works,但在所有列(包括G)上返回相同的计数NULL@MANY. . . 第二种方法应该满足您的需求。
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;