SQL Server CE 4.0-多列中不同值的计数频率
我有一个包含20列的表,每行的每列值可以是0-4(整数) 对于where子句中指定的表的给定子集,我想计算每列中0的数量、1的数量、2的数量等 一位朋友建议使用SQL Server CE 4.0-多列中不同值的计数频率,sql,count,sql-server-ce,sql-server-ce-4,Sql,Count,Sql Server Ce,Sql Server Ce 4,我有一个包含20列的表,每行的每列值可以是0-4(整数) 对于where子句中指定的表的给定子集,我想计算每列中0的数量、1的数量、2的数量等 一位朋友建议使用分区,但SQL Server CE不支持这种做法。我怀疑我必须使用count(expression),但我无法计算出表达式是什么 谁能给我一个建议吗 谢谢, 威尔。认为您有一张如下表 结果集如下所示 很接近了,谢谢,但我需要的是每一列的总数,而不仅仅是整个表格的总数。@dontpanic抱歉误解,我只是更新了我的答案。这些结果看起来就像
分区
,但SQL Server CE不支持这种做法。我怀疑我必须使用count(expression)
,但我无法计算出表达式是什么
谁能给我一个建议吗
谢谢,
威尔。认为您有一张如下表 结果集如下所示
很接近了,谢谢,但我需要的是每一列的总数,而不仅仅是整个表格的总数。@dontpanic抱歉误解,我只是更新了我的答案。这些结果看起来就像我要查找的一样,但是我在group by子句中的关键字“Left”上遇到了一个错误。我还没有在SQL Compact引用中找到该词的引用,所以我想知道它是否不受支持。谢谢。是的,不支持Left,但我将尝试改用substring。好的,请告诉我它是否有用,不要忘记检查我的解决方案作为答案;)
Select min(subset.g), count(subset.val)
from
(
Select 'c1 & '+cast(Val1 as varchar(4)) as G,
val1 as val
from test
Union all
Select 'c2 & '+ cast(Val2 as varchar(4)) as G,
val2 as val
from test
Union all
Select 'c3 & '+ cast(Val3 as varchar(4)) as G,
val3 as val
from test
) as subset
Group by Left(subset.g,2),subset.val
Order by Left(subset.g,2)