如何在MySQL查询中对值进行求和?

时间:2009-03-11 12:12:44

标签: mysql

我正在使用MySQL 我有一个能够找到最大值的P_id。我想通过以下方式显示两个公式的总和:

    Then 

          Sum(max(pval)*S_val*Estimate)
          Sum(max(pval)*P_val*Analyze)
    Finally sum the Both above

我使用了以下功能,但它给了我一个错误:

               
>    id Display P_id    P_val   Analyze S_id    S_val   Estimate       
>    70 Data1   1       1       178     0       0       0      
>    71 Data2   1       0       0       1       3       50   
SELECT  SUM( max(pval)*S_val*Estimate) + Sum( max(pval)* P_val * Analyze) from DATA where pid='1'

这导致:

  • A:1 * 178
  • B:1 * 3 * 50
  • 总和(A + B):328

1 个答案:

答案 0 :(得分:2)

您无法嵌套聚合函数 - SELECT SUM(MAX(x))将始终出错。

您可以在子查询中获取内部值:

SELECT
  SUM(maxpval * S_val * Estimate),
  SUM(maxpval * P_val * Analyze)
FROM
  yourTable
  JOIN (
    SELECT MAX(P_val) AS maxpval FROM yourTable
  ) AS dt;