1
我找不到我的查询中的错误:如何统计表中所有表中的列数和行数?
SELECT
u.Table_Name,
count(distinct c.Column_Name),
sum(u.num_rows)
FROM User_Tab_Columns c, User_Tables u
WHERE u.TABLE_NAME = c.TABLE_NAME
group by u.Table_Name;
结果是:
TABLE_NAME COUNT(DISTINCTC.COLUMN_NAME) SUM(U.NUM_ROWS)
------------------------------ ---------------------------- ---------------
DEPT 3 12
EMP 8 112
,它应该是:
TABLE_NAME COUNT(DISTINCTC.COLUMN_NAME) SUM(U.NUM_ROWS)
------------------------------ ---------------------------- ---------------
DEPT 3 4
EMP 8 14
行,以便查询多个号码和列数,但我不知道为什么?
distinct'的'的存在是没有意义的。表不能有多个具有相同名称的列。 –
@NicholasKrasnov - 真 - 已经从查询中删除了这个 - 并改为count(*)。 –
在执行上述查询之前,还必须收集表统计信息。否则'num_rows'可能包含错误的数据。 –