如何计算大表每一列中的定义值(例如-1)?

qfe3c7zg  于 2022-10-03  发布在  其他
关注(0)|答案(1)|浏览(69)

我的任务是分析一个大表(250列,数百万行)。我需要找出每列中有多少个定义的值(例如-1)。我有一个解决方案,它遍历我的表的列,并使用以下链接中描述的方法:

Fastest way to count exact number of rows in a very large table?

https://learn.microsoft.com/de-de/archive/blogs/martijnh/sql-serverhow-to-quickly-retrieve-accurate-row-count-for-table

然而,我必须做的是:

select column into #tab from MyBigTable where column = -1

然后将这些方法应用于#Tab。

你认为有什么办法可以有效地处理这一问题吗?

aemubtdh

aemubtdh1#

您可以有条件地聚合

select sum(case when col1  = -1 then 1 else 0 end) col1sum,
       sum(case when col2  = -1 then 1 else 0 end) col2sum,
       ...
       ...
       sum(case when coln  = -1 then 1 else 0 end) colnsum
from yourtable

相关问题