【问题标题】:SQL: Is there a way to count Null records from Information Schema in RedshiftSQL:有没有办法从 Redshift 中的信息模式中计算 Null 记录
【发布时间】:2020-12-21 22:51:24
【问题描述】:

我目前有一个脚本可以提取所有表名、列和数据类型。我正在尝试添加一个列来计算每列的空记录数。

我尝试将其添加到脚本中,但无法正常工作。

当前脚本:

选择不同的表名、列名、数据类型 来自 information_schema.columns 其中 table_schema = '模式'

有什么我可以添加类似于以下内容的吗?

  1. sum(列为空则为1,否则为0结束的情况)
  2. select count(column) where column is not null

【问题讨论】:

    标签: sql amazon-redshift


    【解决方案1】:

    由于 count() 只计算非空值,我们可以轻松计算列中非空条目的数量。从总行数中减去,您有空条目数。

    select count(*) - count(column) as num_null_in_column;
    

    【讨论】:

    • 谢谢比尔。这是有道理的,但我仍然无法在我的脚本中使用它
    • 那么您的脚本是在什么基础上运行和编写的?问题是错误还是错误的结果?您能否提供您发出的错误或产生错误结果的 SQL?
    • 嗨,比尔,感谢您回复我。我的脚本在亚马逊红移上运行。我目前正在运行以下脚本来为我提供架构中的所有表和列名。结果在每一行中都有列名。我希望然后看到这些列中有多少空值。最终结果类似于第 1 行:表 1,列名 1,0 个空值行 2 表 1,列名 2,5 个空值... 从 information_schema.columns 中选择不同的 table_name、column_name、data_type where table_schema = 'schema'
    • 我认为这个线程是我想要做的,但我无法调整它以与我的表格一起使用。 stackoverflow.com/questions/40850949/…
    • 我想我知道您现在正在寻找什么 - 您希望“脚本”位于 Redshift 中。所以你可以从 SVV_COLUMNS 得到你的前 2 列,对吗?您希望“脚本”灵活,并随着时间的推移而调整数据库具有的表和列的数量,对吗?这可以通过存储过程来完成 AFAIK,该存储过程采用模式、表和列并返回答案中描述的差异。另一种方法是通过 SVV_COLUMNS 使用外部工具循环,并将结果放入您可能想要的汇总表中。续。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 2016-07-09
    • 1970-01-01
    • 2019-09-13
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多