Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按返回列名和行计数的所有列计算所有行_Sql_Sql Server_Group By_Unpivot - Fatal编程技术网

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;