sql分类查询并将每个类别的所有记录显示出来

如题所述

如根据部门分组 查询每个部门的平均工资
SQL> SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;

DEPTNO AVG(SAL)
------ ----------
10 2916.66666
20 2175
30 1566.66666追问

不行啊,比如说我又三种类别,每个类别的都有很多条记录,
怎么让它们这样显示:
类别1 类别2 类别3
内容11 内容21 内容31
内容13 内容22 内容32
内容14 内容23 内容33
内容15 内容34
内容35

追答

SQL> select emp.*, b.deptno ,b.asal from emp,(select deptno,avg(sal) asal from emp group by deptno)b where emp.deptno=b.deptno ;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO ASAL
----- ---------- --------- ----- ----------- --------- --------- ------ ------ ----------
7369 SMITH CLERK 7902 1980-12-17 800.00 20 20 2175
7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30 30 1566.66666
7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30 30 1566.66666
7566 JONES MANAGER 7839 1981-4-2 2975.00 20 20 2175
7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30 30 1566.66666
7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30 30 1566.66666
7782 CLARK MANAGER 7839 1981-6-9 2450.00 10 10 2916.66666
7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20 20 2175
7839 KING PRESIDENT 1981-11-17 5000.00 10 10 2916.66666
7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.00 30 30 1566.66666
7876 ADAM CLERK 7788 1987-5-23 1100.00 20 20 2175
7900 JAMES CLERK 7698 1981-12-3 950.00 30 30 1566.66666
7902 FORD ANALYST 7566 1981-12-3 3000.00 20 20 2175
7934 MILLER CLERK 7782 1982-1-23 1300.00 10 10 2916.66666
若没有求平均,最大 最小 就不用group by

追问

不好意思啊,可是我怎么把这些显示为一下格式啊:
(类别1对应的内容有4条,类别2对应的内容有3条,类别3对应的内容有5条,一下列的格式显示出来,明白我的意思吗)

类别1 类别2 类别3

内容11 内容21 内容31
内容13 内容22 内容32
内容14 内容23 内容33
内容15 内容34
内容35

追答

这样你的内容能放下吗 ?
你能给个表吗 有数据的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-17
直接使用一个group by 就可以了追问

不行啊,比如说我又三种类别,每个类别的都有很多条记录,
怎么让它们这样显示:
类别1 类别2 类别3
内容11 内容21 内容31
内容13 内容22 内容32
内容14 内容23 内容33
内容15 内容34
内容35

追答

具体题目是什么 你光给我一些说明 我怎么给你讲 具体情况具体对待嘛

相似回答