Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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_Tsql - Fatal编程技术网

Sql 计算每列的值数

Sql 计算每列的值数,sql,sql-server,tsql,Sql,Sql Server,Tsql,假设以下表 --------------------------------------------- ID Col1 Col2 Col3 Col4 ... ColN -------------------------------------------- 1 bla foo abc 2 foo abc 3 bar 4 baz 5 ba

假设以下

---------------------------------------------
ID    Col1    Col2    Col3    Col4  ...  ColN
--------------------------------------------
1             bla     foo                abc
2     foo     abc
3     bar
4                     baz
5     baz     bar     cuz
6                     123                foo
7     123
8                     oof
--------------------------------------------
是否有一种方法可以列出每列的值数,而不必对每列进行单独的查询

因此,输出将如下所示:

----------
Col   Hits
----------
Col1  4
Col2  3
Col3  5
Col4  0
...
ColN  2
----------

任何朝正确方向的推进都将是伟大的

您可以取消打印并聚合:

select v.which, count(v.col)
from t cross apply
     (values ('col1', col1), ('col2', col2), . . . ('coln', coln)
     ) v(which, col)
group by v.which;
什么是“值”,即如果
foo
在一列中出现两次,是一个值还是两个值?其他值是否为空,是否算作一个值?