数据库是这样的
userid serid
123 10
123 20
123 30
124 10
124 20
125 10
126 10
表为use表,请问怎么样得到查询结果如下:
10的记录 20的记录 30的记录
4 2 1
userid serid
123 10
123 20
123 30
124 10
124 20
125 10
126 10
表为use表,请问怎么样得到查询结果如下:
10的记录 20的记录 30的记录
4 2 1
解决方案 »
- Oracle提示数据文件坏块。
- 一个select语句,where条件是有选择的添加,怎么写?
- Oracle语句优化帮帮忙
- 实例突然启动不了 报错:ora-01172 ora-01151 有遇到过的,请指点。急等!
- oracle 中字段类型 INT 和 Integer 有什么区别
- (急)请教高手,update表非常慢的问题.
- 请问现在国外是不是有很多公司把数据库委托给专门的公司管理,自己则从网上联机查询?
- 启动与关闭ORACLE脚本,请大家帮忙正确的应该是怎样的。
- 请问大家,我的Oracle 8i为什么在有的win2000系统下无法安装?而在有的系统下可以?在线等待,急!!!
- 关于游标的一个题。
- 高分求oracle 10g IAS 的安装配置说明
- 有个sql语句看不懂帮忙看看
SELECT SUM(DECODE(serid,10,1,0)) AS 10的记录,SUM(DECODE(serid,20,1,0)) AS 20的记录,SUM(DECODE(serid,30,1,0)) AS 30的记录 FROM YOURTABLE
sum(case when serid=20 then 1 else 0 end) as '20的记录',
sum(case when serid=30 then 1 else 0 end) as '30的记录'
from tb;
(select count(*) from tb where serid = 10) [10的记录],
(select count(*) from tb where serid = 20) [20的记录],
(select count(*) from tb where serid = 30) [30的记录]
from you_tb
group by serid我记得这样是最简单的,但手边没有环境 好久没写了,应该不会错.
或
select serid,count(serid) over(partition by serid) from tb感觉用decode是有问题的,因为serid的值肯定是变的,不确定的,不仅仅是10,20或30,不能写死了!