首页 > 解决方案 > 查询以计算所有雪花视图中的所有行

问题描述

我正在尝试对我的雪花数据库中一组视图中的所有行进行计数。

不幸的是,内置的row_countfrominformation_schema.tables中不存在。information_schema.views

看来我需要count每个视图中的所有行,例如:

with view_name as (select table_name 
    from account_usage.views
    where table_schema = 'ACCESS' and RIGHT(table_name,7) = 'CURRENT'
                  )
select count (*) from view_name;

但这只返回一个结果,而不是每行一个

如果我将其更改select为包含视图名称,即

select concat('Rows in ', view_name), count (*) from view_name;

…它返回错误“无效标识符'VIEW_NAME'(第5行)”

如何显示所有结果并包含视图名称?

标签: sqlsnowflake-cloud-data-platform

解决方案


您可以创建一个查看 information_schema 的查询来创建一个查询,该查询将逐个查看获取其计数:

select listagg(xx, ' union all ')
from (
    select 'select count(*) c, \'' || x || '\' v from ' || x as xx
    from (
        select TABLE_CATALOG ||'.'|| TABLE_SCHEMA ||'."'||TABLE_NAME||'"' x
        from  KNOEMA_FORECAST_DATA_ATLAS.INFORMATION_SCHEMA.VIEWS
        where table_schema='FORECAST'
    )
)

另请参阅如何查找模式中所有视图的行数?


推荐阅读