select ename as Name, sal as Salary, sal/sum(sal)*100 from stud_v22_lykkeboeale.emp
我有這個代碼,但是當我按sal分組時,它會從這個轉換:
| Name | Salary | sal/sum(sal)*100 |
|------ -------- ------------------|
|Smith | 800 |2.756244616709733 |
對此:
|Name |salary | sal/sum(sal)*100|
|Smith |800 |100|
|James |950 |100|
|Adams |1100 |100|
|Ward |1250 |50 |
|Miller |1300 |100|
|Turner |1500 |100|
|Allen |1600 |100|
|Clark |2450 |100|
|Blake |2850 |100|
|Jones |2975 |100|
|Scott |3000 |50 |
|King |5000 |100|
它應該輸出如下:
|Name | Salary | sal/tot_sal*100 |
|------|-----------|-----------------------|
|Smith | 800 | 2.756244616709733 |
|James | 950 | 3.273040482342808 |
|Adams | 1100 | 3.7898363479758825 |
|Ward | 1250 | 4.3066322136089585 |
|Martin| 1250 | 4.3066322136089585 |
|Miller| 1300 | 4.478897502153316 |
|Turner| 1500 | 5.167958656330749 |
|Allen | 1600 | 5.512489233419466 |
|Clark | 2450 | 8.440999138673558 |
|Blake | 2850 | 9.819121447028424 |
|Jones | 2975 | 10.249784668389319 |
|Ford | 3000 | 10.335917312661499 |
|Scott | 3000 | 10.335917312661499 |
|King | 5000 | 17.226528854435834 |
sal/tot_sal*100 是個人工資與工資總和的百分比。它在我的作業中說我應該使用行內視圖,但我不知道那是什么,我已經搜索過,但還沒有找到任何“真實”的答案。
因此,如果有人可以幫助我,我將不勝感激。
uj5u.com熱心網友回復:
使用視窗 SUM(),而不是聚合一個:
SELECT Name, Salary, 100 * Salary / SUM(Salary) OVER () percent
FROM test
ORDER BY Salary, Name
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=99f39cbd06734643a64578aaccd36533
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/428852.html
標籤:mysql
