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'可能包含錯誤的數據。 –