Amazon redshift 使用目录查询时的行计数错误

Amazon redshift 使用目录查询时的行计数错误,amazon-redshift,Amazon Redshift,我在下一页得到了这个查询: 它列出了表名和行数。但行数似乎比实际值错了10倍 select datname, nspname, relname, sum(rows) as rows from pg_class, pg_namespace, pg_database, stv_tbl_perm where pg_namespace.oid = relnamespace and pg_class.oid = stv_tbl_perm.id and pg_database.oid = stv_tbl_p

我在下一页得到了这个查询:

它列出了表名和行数。但行数似乎比实际值错了10倍

select datname, nspname, relname, sum(rows) as rows
from pg_class, pg_namespace, pg_database, stv_tbl_perm
where pg_namespace.oid = relnamespace
and pg_class.oid = stv_tbl_perm.id
and pg_database.oid = stv_tbl_perm.db_id
and datname ='tickit'
group by datname, nspname, relname
order by datname, nspname, relname;

sumrows正确吗?

这里,试试我的。它还包括数据大小:-D

/* 
   Ordered view of table sizes.
*/
CREATE VIEW my_schema.vw_table_summary
AS
SELECT db_name
      ,schema_name
      ,table_name
      ,TO_CHAR(rows_total,'999,999,999,999')  rows_total
      ,TO_CHAR(rows_sorted,'999,999,999,999') rows_sorted
      ,CASE WHEN rows_total > 0 
            THEN ROUND((CONVERT(NUMERIC,rows_sorted)/CONVERT(NUMERIC,rows_total))*100,2) 
       ELSE 0.00 END percent_sorted
      ,COALESCE(size_in_gb,0) size_in_gb
FROM (SELECT id        table_id
            ,datname   db_name
            ,nspname   schema_name
            ,relname   table_name
            ,SUM(rows) rows_total
            ,SUM(sorted_rows) rows_sorted
        FROM stv_tbl_perm
        JOIN pg_class
          ON pg_class.oid = stv_tbl_perm.id
        JOIN pg_namespace
          ON pg_namespace.oid = relnamespace
        JOIN pg_database
          ON pg_database.oid = stv_tbl_perm.db_id
       WHERE name NOT LIKE 'pg_%'
         AND name NOT LIKE 'stl_%'
         AND name NOT LIKE 'stp_%'
         AND name NOT LIKE 'padb_%'
         AND nspname <> 'pg_catalog'
       GROUP BY id, datname, nspname, relname
       ORDER BY id, datname, nspname, relname) tbl_det
LEFT
JOIN (SELECT tbl table_id
            ,ROUND(CONVERT(REAL,COUNT(*))/1024,2) size_in_gb
        FROM stv_blocklist bloc
       GROUP BY tbl) tbl_size
 ON tbl_size.table_id = tbl_det.table_id
 ORDER BY db_name
         ,schema_name
         ,table_name
;

运行vacuum命令后,我得到了正确的行数。是否可以在同一个查询中获得列数?