0

我有一个具有此架构的表:

+---------+-------------+-----------+---------+
|   id    |   provider  |  status   | message |
+---------------------------------------------+
|    1    |   Google    |  success  |  ...    |
|    2    |   Facebook  |  failure  |  ...    |
|    3    |   Facebook  |  failure  |  ...    |
|    4    |   Google    |  failure  |  ...    |
+---------------------------------------------+

我需要知道failure例如百分比:

谷歌-> 50% 失败

Facebook -> 100% 失败

我使用 mysql 5.7

我尝试使用 group by 到达这个目的地,但我不能

4

1 回答 1

2

您可以进行条件聚合。我喜欢这样做avg()

select provider, avg(status = 'failure') failure_ratio
from mytable
group by provider

对于每一个,这都会为您提供一个介于和provider之间的数值,它表示 中的记录比率。如果你想要一个百分比,你可以乘以它。01'failure' status100

于 2020-05-14T08:34:52.950 回答