读书人

这个sql话语这么写

发布时间: 2012-12-14 10:33:07 作者: rapoo

这个sql语句这么写
表st
sno sname sex
001 jon 1
002 hat 1
003 ww 2
004 qw 1
.
.
.
(1表示男,2表示女)

性别 人数
1 m
2 n
m+n

怎么表示下面这张表
[最优解释]
按性别分组
然后再rollup作个统计啊

sys@ORCL> create table st (sno number,sname varchar2(10),sex number);

Table created.

sys@ORCL> insert into st values(001,'aa',1);

1 row created.

sys@ORCL> insert into st values(002,'bb',1);

1 row created.

sys@ORCL> insert into st values(003,'cc',2);

1 row created.

sys@ORCL> insert into st values(004,'dd',1);

1 row created.

sys@ORCL> commit;

Commit complete.

sys@ORCL> select * from st;

SNO SNAME SEX
---------- ---------- ----------
1 aa 1
2 bb 1
3 cc 2
4 dd 1
sys@ORCL> select sex,count(sex) from st group by rollup(sex);

SEX COUNT(SEX)
---------- ----------
1 3
2 1
4

[其他解释]
select sex as 性别, count(*) as 人数 from st group by rollup(sex);
[其他解释]
select sex, sum(decode(sex, '1', 1, '2', 1)) from st
[其他解释]
如果不行,,,说说。。。我没有试。
please call me Rayn
my QQ is 412552703
[其他解释]
group by rollup() 对每组数据进行合计
[其他解释]
学习了,之前只用group by,原来还有group by rollup。
------其他解决方案--------------------


引用:
学习了,之前只用group by,原来还有group by rollup。

这是对group by的扩展
cube也行
rollup也行

读书人网 >oracle

热点推荐