仅计算不同的行

时间:2016-12-16 07:00:29

标签: mysql

所以我有一个数据库表:

projectNo| process | studio     | requiredNo |  
---------+---------+------------+------------+
16090001 | ANM     | APEX       | 10         |
16090001 | ANM     | BASECAMP   | 10         |
16090001 | BGD     | CANVAS     | 15         |
16090001 | BGD     | PALETTE    | 15         |

我想计算所需的数字。但是当我做的时候

SELECT SUM(requiredNo) FROM process WHERE projectNo='$projectNo'

我得到50.但它应该只有25,因为过程是相同的,但工作室是不同的。但是我需要按流程计算。那么我怎样才能只计算不同的过程呢?

1 个答案:

答案 0 :(得分:0)

select sum(mreq)
from
(
    select max(requiredNo) as mreq
    from process 
    where projectNo='$projectNo'
    group by process
) tmp

内部选择为每个进程获得最高requiredNo。外部选择总和了。