我有一个数据库,用于存储策展人提交的每种产品,并在该数据库中注册是否获批。我需要生成一个列表来显示其得分,该列表由提交次数更多(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
但是我不知道该怎么做。
答案 0 :(得分:1)
使用现有查询作为子查询可能是最简单的:
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