如何识别 Snowflake 模式中只有空值的所有列
How to identify all columns in Snowflake schema that has only null values
(代表 Snowflake 客户提交)
.......................
需要过滤空数据列,听说可以在模式INFORMATION_SCHEMA
的视图"COLUMNS"中找到数据库所有表的所有列的信息。
但是,我发现它没有显示 100% 准确度的正确数据。当我们将约束指定为非 Null 或它是主键时,它将显示 Non-nullable。对于其他列,它显示为 Nullable。但这不对,我们需要实际检查列中的数据,即使只有一条记录,那么该列是 Non-nullable。
还有其他方法吗?
.......................
有什么建议吗?
INFORMATION_SCHEMA
中的视图旨在描述数据库中 table 的结构,而不是它们的内容。通过查询 [=14] 的 COLUMNS
视图,您可以简单地确定哪些列 可能 或 可能不 包含 null
值=]:
select COLUMN_NAME, IS_NULLABLE from YOUR_DB.INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'YOUR_TABLE_NAME' and TABLE_SCHEMA = 'PUBLIC';
但是,这不会告诉您这些列是否真的包含空值。为此,您实际上需要 运行 对您感兴趣的 table 进行查询。幸运的是, count
函数隐含地只计算非空值,因此您可以轻松地使用它确定行的百分比包含 null
值它是您感兴趣的列。例如:
select count(1) as TOTAL, count(YOUR_COL) as YOUR_COL_NON_NULL
from YOUR_TABLE;
如果您的 table 有 100 行并且没有任何空值,您将取回
+-------+-------------------+
+ TOTAL | YOUR_COL_NON_NULL |
+-------+-------------------+
| 100 | 100 |
+-------+-------------------+
但是,如果您的 table 有 100 行,其中 25 行在 YOUR_COL
列中包含 null
个值,您将返回:
+-------+-------------------+
+ TOTAL | YOUR_COL_NON_NULL |
+-------+-------------------+
| 100 | 75 |
+-------+-------------------+
None 这是 Snowflake 特有的,它只是基本的 SQL。
(代表 Snowflake 客户提交)
.......................
需要过滤空数据列,听说可以在模式INFORMATION_SCHEMA
的视图"COLUMNS"中找到数据库所有表的所有列的信息。
但是,我发现它没有显示 100% 准确度的正确数据。当我们将约束指定为非 Null 或它是主键时,它将显示 Non-nullable。对于其他列,它显示为 Nullable。但这不对,我们需要实际检查列中的数据,即使只有一条记录,那么该列是 Non-nullable。
还有其他方法吗?
.......................
有什么建议吗?
INFORMATION_SCHEMA
中的视图旨在描述数据库中 table 的结构,而不是它们的内容。通过查询 [=14] 的 COLUMNS
视图,您可以简单地确定哪些列 可能 或 可能不 包含 null
值=]:
select COLUMN_NAME, IS_NULLABLE from YOUR_DB.INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'YOUR_TABLE_NAME' and TABLE_SCHEMA = 'PUBLIC';
但是,这不会告诉您这些列是否真的包含空值。为此,您实际上需要 运行 对您感兴趣的 table 进行查询。幸运的是, count
函数隐含地只计算非空值,因此您可以轻松地使用它确定行的百分比包含 null
值它是您感兴趣的列。例如:
select count(1) as TOTAL, count(YOUR_COL) as YOUR_COL_NON_NULL
from YOUR_TABLE;
如果您的 table 有 100 行并且没有任何空值,您将取回
+-------+-------------------+
+ TOTAL | YOUR_COL_NON_NULL |
+-------+-------------------+
| 100 | 100 |
+-------+-------------------+
但是,如果您的 table 有 100 行,其中 25 行在 YOUR_COL
列中包含 null
个值,您将返回:
+-------+-------------------+
+ TOTAL | YOUR_COL_NON_NULL |
+-------+-------------------+
| 100 | 75 |
+-------+-------------------+
None 这是 Snowflake 特有的,它只是基本的 SQL。