首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算记录中出现非空字段的次数

如何计算记录中出现非空字段的次数
EN

Stack Overflow用户
提问于 2017-07-31 04:56:39
回答 3查看 105关注 0票数 1

我正在尝试计算记录字段具有值的次数,以便稍后在应用程序中报告该次数。

我使用COUNT和GROUP BY通过不同的方法找到了几个答案,但结果都是整个表中总出现次数的总和。

我正在尝试限制每条记录的计数。

代码语言:javascript
运行
复制
Table Example:
COL-1     COL-2     COL-3     COL-4   
VALUE               VALUE
          VALUE               VALUE
VALUE               VALUE     VALUE
VALUE

我需要对每条记录的字段进行计数,以确定值出现的次数。

类似于:

代码语言:javascript
运行
复制
Result Concept:
COL-1     COL-2     COL-3     COL-4     Occurrences
VALUE               VALUE                   2
          VALUE               VALUE         2
VALUE               VALUE     VALUE         3
VALUE                                       1

澄清:我实际上不需要在结果中列出列和值。我只需要每条记录的准确计数。我只是想在我的问题中说明“事件值”和记录值之间的关系。

感谢您的所有建议和投入。

EN

回答 3

Stack Overflow用户

发布于 2017-07-31 05:06:00

只需使用case即可

代码语言:javascript
运行
复制
select t.*,
       ( (case when col1 is not null then 1 else 0 end) +
         (case when col2 is not null then 1 else 0 end) +
         (case when col3 is not null then 1 else 0 end) +
         (case when col4 is not null then 1 else 0 end)
       ) as occurrences
from t;
票数 1
EN

Stack Overflow用户

发布于 2017-07-31 05:17:49

或解码;)

代码语言:javascript
运行
复制
select t.*, DECODE(col1,null,0,1)+DECODE(col2,null,0,1)+
            DECODE(col3,null,0,1)+DECODE(col4,null,0,1) cnt
from my_table t
票数 0
EN

Stack Overflow用户

发布于 2017-07-31 07:52:13

可以在不列出所有列名的情况下使用动态SQL

代码语言:javascript
运行
复制
DECLARE @sql VARCHAR(MAX)
DECLARE @tbl VARCHAR(100)

SET @tbl = 'sampletable' -- put your table name here

SET @sql = 'SELECT *, ' 

SELECT @sql = @sql + '(CASE WHEN ' + cols.name + ' IS NOT NULL THEN 1 ELSE 0 END) ' + '+'
  FROM sys.columns cols
 WHERE cols.object_id = object_id(@tbl); 

SET @sql = LEFT(@sql, LEN(@sql) - 1)
SET @sql = @sql + ' AS occurrences FROM ' + @tbl

EXEC(@sql)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45404632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档