Как SUM () несколько строк подзапроса в MySQL? - PullRequest
9 голосов
/ 24 сентября 2010

Вопрос прост: я хочу сделать:

SELECT SUM ((... подзапрос, который возвращает несколько строк с одним значением int ...)) Всего AS;

Как бы я это сделал?Я получаю сообщение о том, что подзапрос возвращает более одной строки.Мне нужно иметь это в подзапросе.

Ответы [ 2 ]

13 голосов
/ 24 сентября 2010

Вот подход, который должен работать для вас:

SELECT SUM(column_alias)
FROM (select ... as column_alias from ...) as table_alias

А вот конкретный фиктивный пример, демонстрирующий подход в действии:

select sum(int_val) 
from (
  select 1 as int_val 
  union
  select 2 as int_val 
  union 
  select 3 as int_val
) as sub;
1 голос
/ 24 сентября 2010

Не могли бы вы просто выполнить агрегирование в пределах подзапроса?

SELECT
    (SELECT SUM(...) ...) AS total,
    ...

(не проверено!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...