Как я могу суммировать значения в запросе MySQL? - PullRequest
0 голосов
/ 11 марта 2009

Я использую 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 Ответ

2 голосов
/ 24 апреля 2009

Вы не можете вкладывать агрегатные функции - 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...