2013-11-12 2 views
0

У меня есть запрос, который имеет несколько функций суммы, которые являются одинаковыми. Было бы более эффективным запустить отдельный запрос суммы, а затем привязать его к моему первоначальному запросу в качестве значения, чтобы ускорить его?Mysql - Множественные функции суммы в запросе

Мой текущий запрос

$dbquery = $dbh->prepare(" 
SELECT amount - (Select SUM(amountused) from tblamountused) as amountleft 
FROM tblamount 
WHERE amount - (Select SUM(amountused) from tblamountused) > 0 
"); 
+0

вы используете сумму() без группировки. –

+0

@SureshKamrushi Но в списке SELECT нет других столбцов, поэтому совокупность групп считается всей таблицей. –

+0

В вашем примере есть только два из них (одинаковые). Неужели это действительно хуже? Вы можете выполнить декартовое соединение против подзапроса, чтобы получить агрегированные значения только один раз, если вам нужно. –

ответ

3

Может быть что-то вроде этого:

SELECT amount - (Select SUM(amountused) from tblamountused) as amountleft 
FROM tblamount 
HAVING amountleft > 0 
+0

Спасибо, это то, что я искал. – Ralph

Смежные вопросы