Как объединить несколько сумм в одном запросе? - PullRequest
2 голосов
/ 28 февраля 2012

У меня такой запрос:

SELECT *, SUM(ss.rank) as group_sum 
FROM Standard s, s.SubStandard ss 
GROUP BY s.id

Проблема в том, что я хочу иметь SUM(s.rank) as total_rank в этом запросе, как это возможно?

Ответы [ 3 ]

1 голос
/ 28 февраля 2012
Just Try:

SELECT *, SUM(ss.rank) as group_sum ,SUM(s.rank) as total_rank
FROM Standard s, s.SubStandard ss on s.id=ss.sid  // => replace with actual column
GROUPBY s.id

если другая группа к тому времени, пожалуйста, используйте union.

1 голос
/ 28 февраля 2012

Не уверен, что вы ищете, но это может помочь:

select s.id, s.title, sum(ss.rank) as group_sum from standard s
join subStandard ss
on s.id = ss.standard_id
group by s.id, s.title
1 голос
/ 28 февраля 2012

Список ваших отдельных столбцов (вместо *).

SELECT SUM(s.rank) as total_rank, s.id, s.foo, s.bar, SUM(ss.rank) as group_sum FROM standard s...

Я бы тоже предложил изменить ваш JOIN.

... LEFT JOIN substandard ss ON s.id = ss.standard

или что-то подобное.

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