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

それで、複数の行と列の数をクエリしますが、理由はわかりませんか?

4

1 に答える 1

2

行数はテーブルごとであるため、単純にグループ化できます。

SELECT
u.Table_Name, 
count(*), 
u.num_rows    
FROM User_Tab_Columns c, User_Tables u    
WHERE   u.TABLE_NAME = c.TABLE_NAME    
group by u.Table_Name, u.num_rows;
于 2012-12-16T17:24:40.300 に答える