大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
实现代码:
公司主营业务:网站建设、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出珠晖免费做网站回馈大家。
ELECT(CASE WHEN db_psndoc.age=30 THEN '30岁以上'
WHEN db_psndoc.age30 THEN '30岁及以下' END)
ranges, COUNT(*) rs ,100*round(COUNT(*)/SUM(COUNT(*))
OVER(),4)||'%' percent FROM bd_psnd
GROUP BY CASE
WHEN bd_psndoc.age=30 then '30岁及以下'
WHEN db_psndoc.age=30 THEN '30岁以上'
END
扩展资料
sum(..) over(..)用法分析:
sum(…) over( ),对所有行求和;
sum(…) over( order by … ), 连续求和;
sum(…) over( partition by… ),同组内所行求和;
sum(…) over( partition by… order by … ),同第1点中的排序求和原理,只是范围限制在组内。
over不能单独使用,要和分析函数:rank(),dense_rank(),row_number(),sum()等一起使用。
over函数的参数:over(partition by columnname1 order by columnname2)
含义,按columname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序。
例子:
select deptno,ename,sal,
sum(sal) over (partition by deptno order by ename) 部门连续求和,--各部门的薪水"连续"求和
sum(sal) over (partition by deptno) 部门总和, -- 部门统计的总和,同一部门总和不变
楼上的回答没错,你不会是st字段定义的是number吧,改varchar2就可以了
如果真有100个字段, 建议改表结构, 把100个字段作为100条子表数据.
假定子表cell_pb_table(cell_pb_id,cell_table_id,pb_value), cell_table的主键cell_table_id
SELECT A.TIME, A.CELL,A.PB_AVG,
SUM(CASE WHEN CELL_PB_TABLE.PB_VALUE 200 THEN 1 ELSE 0 END)/COUNT(1) AS HIT_RATE
FROM CELL_TABLE A LEFT JOIN CELL_PB_TABLE
ON A.CELL_TABLE_ID = B.CELL_TABLE_ID
GROUP BY A.TIME,A.CELL,A.PB_AVG
真要行转列我没想到什么简单的SQL.
WITH TAB AS
(SELECT '1:2:3:4' NAME FROM DUAL)
SELECT REGEXP_SUBSTR(NAME, '[^:]+', LEVEL, 1) C1,
REGEXP_SUBSTR(NAME, '[^:]+', LEVEL, 2) C2,
REGEXP_SUBSTR(NAME, '[^:]+', LEVEL, 3) C3,
REGEXP_SUBSTR(NAME, '[^:]+', LEVEL, 4) C4
FROM TAB
CONNECT BY LEVEL = LENGTH(TRANSLATE(NAME, ':' || NAME, '')) + 1;
可以使用round(数据,精确度)这个函数;
这个就可以写成round(0.33333333333,2)*100%