Mysql 如何根据两列的结果输出列表
我有一个数据库,存储馆长提交的每一件产品,并在那里注册是否获得批准。我需要生成一个列表,在其中显示他们的分数,由提交更多(Mysql 如何根据两列的结果输出列表,mysql,Mysql,我有一个数据库,存储馆长提交的每一件产品,并在那里注册是否获得批准。我需要生成一个列表,在其中显示他们的分数,由提交更多(subm)并获得批准(appr)的人排序。为此,我需要获得批准率(通过划分appr/subm),我们称之为ar(批准率),然后我需要第二次操作来获得cs(策展人分数),这是appr*(ar*ar)的结果 最终输出应如下所示: | Curator | subm | appr| ar | cs | ---------------------------
subm
)并获得批准(appr
)的人排序。为此,我需要获得批准率(通过划分appr/subm
),我们称之为ar
(批准率),然后我需要第二次操作来获得cs
(策展人分数),这是appr*(ar*ar)
的结果
最终输出应如下所示:
| Curator | subm | appr| ar | cs |
------------------------------------------------
| 1 | 21 | 20 | 95.24% | 18.14058957 |
| 4 | 13 | 12 | 92.31% | 10.22485207 |
| 2 | 10 | 7 | 70.00% | 3.43 |
| 3 | 2 | 2 |100.00% | 2 |
要从我使用的表中获取值
SELECT curator, SUM(prop) subm, SUM(date) appr
FROM control
GROUP BY curator
ORDER BY cs
但我需要补充一点:
SUM(appr/subm) ar, SUM(appr*(ar*ar)) cs
但是我不知道怎么做。将现有查询用作子查询可能是最简单的方法:
SELECT *, appr/subm AS ar, appr*(appr/subm*appr/subm)) AS cs
FROM (SELECT curator, SUM(prop) subm, SUM(date) appr
FROM control
GROUP BY curator) c
ORDER BY cs