Расчет процентов в пределах oracle - PullRequest
1 голос
/ 23 марта 2020

с учетом таблицы, которая для следующих команд:

SELECT sum(weight),type,plant FROM my_table ph 
 GROUP BY QUALITY_NUM_ID , PLANT_CONFIG_NUM_ID

дает:

   WEIGHT      |TYPE|PLANT|
---------------|---|-----|
          50310|  1|   42|
            515|  2|   42|
          25105|  1|   26|
           2335|  7|   26|
        1763525|  1|   22|
         160885|  2|   22|
         108956|  3|   22|

У меня возникли трудности при написании запроса, который будет рассчитывать процент веса для каждого растения и введите. Таким образом, результат должен выглядеть следующим образом:

       WEIGHT |TYPE|PLANT|PERCENT|
---------------|---|-----|-------|
          50310|  1|   42| 99    |
            515|  2|   42| 1     |
          25105|  1|   26| 90    |
           2335|  7|   26| 10    |
        1763525|  1|   22| 86    |
         160885|  2|   22| 8     |
         108956|  3|   22| 6     |

1 Ответ

1 голос
/ 23 марта 2020

Используйте функции analyti c:

SELECT type, plant, sum(weight),
       (sum(weight) * 100 /
        sum(sum(weight)) over (partition by plant)
       ) as percent
FROM my_table ph 
GROUP BY QUALITY_NUM_ID, PLANT_CONFIG_NUM_ID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...