如何对MySQL查询中的值求和?

如何对MySQL查询中的值求和?,mysql,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 Es

我正在使用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 这导致:

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

不能嵌套聚合函数-
选择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;

您能编辑SQL使其真正可读吗?:)请张贴你想要得到的实际结果。我不确定我是否理解。。。你从哪里得到的A=178?我看到S_val=0和Estimate=0,那么max(pval)*S_val*Estimate也应该是=0?很难理解你想做什么。
SELECT
  SUM(maxpval * S_val * Estimate),
  SUM(maxpval * P_val * Analyze)
FROM
  yourTable
  JOIN (
    SELECT MAX(P_val) AS maxpval FROM yourTable
  ) AS dt;