如何删除重复的列结果,并在每个表中包含列数?

时间:2014-11-20 13:04:10

标签: sql oracle

一些简单的问题。

我有这个问题:

SELECT u.Table_Name, u.Column_Name
FROM User_Tab_Columns u;

这给了我这些结果:

TABLE_NAME                     COLUMN_NAME
------------------------------ -----------
BONUS                          ENAME
BONUS                          JOB
BONUS                          SAL
BONUS                          COMM
DEPT                           DEPTNO
DEPT                           DNAME
DEPT                           LOC
DUMMY                          DUMMY
EMP                            EMPNO
EMP                            ENAME
EMP                            JOB
EMP                            MGR
EMP                            HIREDATE
EMP                            SAL
EMP                            COMM
EMP                            DEPTNO
SALGRADE                       GRADE
SALGRADE                       LOSAL
SALGRADE                       HISAL

我不确定如何制作它以便table_name结果不重复(所以每个结果之一)并且每个表具有的列数代替column_name。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

使用GROUP BY子句,您可以对表进行分组,以便您可以在要计算的列上运行聚合函数,在本例中为COUNT

SELECT u.Table_Name, COUNT(1) AS Column_Count FROM User_Tab_Columns u GROUP BY u.Table_Name