實現(xiàn)代碼:
公司主營業(yè)務(wù):網(wǎng)站建設(shè)、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出珠暉免費做網(wǎng)站回饋大家。
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 … ), 連續(xù)求和;
sum(…) over( partition by… ),同組內(nèi)所行求和;
sum(…) over( partition by… order by … ),同第1點中的排序求和原理,只是范圍限制在組內(nèi)。
over不能單獨使用,要和分析函數(shù):rank(),dense_rank(),row_number(),sum()等一起使用。
over函數(shù)的參數(shù):over(partition by columnname1 order by columnname2)
含義,按columname1指定的字段進行分組排序,或者說按字段columnname1的值進行分組排序。
例子:
select deptno,ename,sal,
sum(sal) over (partition by deptno order by ename) 部門連續(xù)求和,--各部門的薪水"連續(xù)"求和
sum(sal) over (partition by deptno) 部門總和, -- 部門統(tǒng)計的總和,同一部門總和不變
樓上的回答沒錯,你不會是st字段定義的是number吧,改varchar2就可以了
如果真有100個字段, 建議改表結(jié)構(gòu), 把100個字段作為100條子表數(shù)據(jù).
假定子表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
真要行轉(zhuǎn)列我沒想到什么簡單的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(數(shù)據(jù),精確度)這個函數(shù);
這個就可以寫成round(0.33333333333,2)*100%