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 - true - 쿼리에서 이것을 제거하고 대신 count (*)로 변경했습니다. –
또한 위의 쿼리를 실행하기 전에 테이블 통계를 수집해야합니다. 그렇지 않으면'num_rows'가 잘못된 데이터를 포함 할 수 있습니다. –