如何求和汇总值并获得百分比?

时间:2019-06-05 16:01:35

标签: mysql sql

...
    case DELETED_POST:
        const newItems = state.items.filter(p => p.id !== action.payload);
        return {
            ...state,
            items: [ ...newItems ],
        };
...

结果:

SELECT count (rx), class_cd
FROM RX 
GROUP BY 2

有没有一种方法可以将C2-C5与Rx和OT相加?

最终我想得到一定比例的C2-C5 / RX-OT。

2 个答案:

答案 0 :(得分:1)

我认为您需要条件聚合:

public

编辑:

如果您只想计算值,则:

select ( sum( case when class_cd in ('C2', 'C3', 'C4', 'C5') then rs end ) /
         sum( case when class_cd in ('RX', 'OT') then rs end )
       ) as ratio
from t;

答案 1 :(得分:1)

您可以尝试通过CASE表达式进行聚合,该表达式可以根据需要对组进行存储:

SELECT
    CASE WHEN class_cd REGEXP '^C[2-5]$' THEN 'C2-C5',
         WHEN class_cd IN ('RX', 'OT') THEN 'RX-OT',
         ELSE class_cd END AS class_cd,
    COUNT(*) AS cnt
FROM RX
GROUP BY
    CASE WHEN class_cd REGEXP '^C[2-5]$' THEN 'C2-C5',
         WHEN class_cd IN ('RX', 'OT') THEN 'RX-OT',
         ELSE class_cd END;