如何通过两列结果输出列表

时间:2019-04-28 05:18:27

标签: mysql

我有一个数据库,用于存储策展人提交的每种产品,并在该数据库中注册是否获批。我需要生成一个列表来显示其得分,该列表由提交次数更多(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 

但是我不知道该怎么做。

1 个答案:

答案 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