嗨,我已經嘗試了很多使用計數和總和的方法。示例表可以如下所示:
| 名稱 | 員工型別 | 百分比 |
|---|---|---|
| 第一的 | 乙 | 66.6 |
| 第二 | 乙 | 66.6 |
| 第三 | 乙 | 66.6 |
| 第四 | 乙 | 66.6 |
| 第五 | C | 33.3 |
| 第六 | C | 33.3 |
我曾嘗試使用這樣的列公式: COUNT(COUNT("Worker"."Person Number") by "Worker"."Assignment Type") 100 /COUNT( )
但我相信第一個計數不應該在那里,如果我在沒有它的情況下使用它,OTBI 會給我一個語法錯誤。這個你能幫我嗎。
uj5u.com熱心網友回復:
您可以嘗試在此處使用分析函式:
SELECT Name, "Employee Type",
100.0 * (COUNT(*) OVER (PARTITION BY "Employee Type") /
COUNT(*) OVER () ) AS Percentage
FROM yourTable
ORDER BY "Employee Type", Name;
這是Oracle的演示。
如果由于某種原因您不能使用分析函式,那么連接方法也適用于此處:
SELECT t1.Name, t1."Employee Type",
100.0 * t2.cnt / (SELECT COUNT(*) FROM yourTable) AS Percentage
FROM yourTable t1
INNER JOIN
(
SELECT "Employee Type", COUNT(*) AS cnt
FROM yourTable
GROUP BY "Employee Type"
) t2
ON t2."Employee Type" = t1."Employee Type"
ORDER BY "Employee Type", Name;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389864.html
標籤:sql 甲骨文 甲骨文11g oracle-sqldeveloper
上一篇:SAS升級到9.4M7后,Oracle資料庫上的MIN函式行為發生了變化
下一篇:函式的子查詢替代方案?
