【问题标题】:Row count tables in schema架构中的行计数表
【发布时间】:2022-01-07 04:20:00
【问题描述】:

有没有一种方法可以在不使用信息模式或帐户使用模式的情况下获取雪花模式中所有表的行数。

【问题讨论】:

标签: sql snowflake-cloud-data-platform snowflake-schema


【解决方案1】:

使用计数和联合

  Select 'tablename', count(*) from 
   Yourschema.tablename
   union
  Select 'tablename1', count(*) from
   Yourschema.tablename1

或者,可以通过信息模式为更多表生成相同的上述sqls

    Select 'Select ' || tablename || ', count(*)
      from tablename union ' from
     information_schema where
     schema like '%snowflake%'

这将为所有表生成您的 sql。您只需要删除输出中最后一个额外的联合,就可以复制并执行该输出。或者您可以将此输出假脱机到一个 .sql 文件并执行该文件。

【讨论】:

  • 您好,感谢您的回复。架构中有 130 个表,因此这不是最有效的方法。我需要一些不需要很长时间才能查询的东西
  • 已编辑检查一次是否有帮助
【解决方案2】:

除了使用 INFORMATION_SCHEMA、ACCOUNT_USAGE 或 SELECT COUNT(*) UNION ....

所以...我建议从 Information_Schema 或 Account_Usage 查询 TABLES-View:https://docs.snowflake.com/en/sql-reference/info-schema/tables.html

编辑:您可以使其变得不必要地复杂并执行以下操作:在模式 myschema 中显示表;然后遍历结果以对每个表发出 SELECT COUNT(*) 并将它们求和。

【讨论】:

    【解决方案3】:

    您可以运行 show tables 命令,这将为您提供表的名称(“name”列)和行数(“rows”列)。

    SHOW TABLES;
    

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 2015-05-23
    • 2021-02-19
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多