В среднем Суммы в одном запросе

безопасность @Keith

? Почему был бы sprocs быть более безопасным?

Хранимые процедуры предлагают свойственную защиту от Внедрение SQL нападения.

Однако Вы не полностью защищены, потому что можно все еще записать хранимые процедуры, которые уязвимы для таких нападений (т.е. динамический SQL в сохраненном proc).

20
задан OMG Ponies 15 October 2009 в 14:49
поделиться

2 ответа

Думаю, ваш вопрос требует пояснений. Если вы хотите взять суммы, сгруппированные по t.client , вы можете использовать:

SELECT t.client, SUM(t.asset)
FROM the-table t
GROUP BY t.client

Затем, если вы хотите взять среднее значение этой суммы, просто сделайте:

SELECT AVG(asset_sums)
FROM
(
    SELECT t.client, SUM(t.asset) AS asset_sums
    FROM the-table t
    GROUP BY t.client
) as inner_query

Однако вы не можете сгруппировать внешний запрос, потому что это даст вам результаты, как в первом запросе. Результаты внутреннего запроса уже сгруппированы по t.client .

36
ответ дан 29 November 2019 в 23:04
поделиться

Если вы пытаетесь получить средние активы клиентов, я думаю, что буду использовать в CTE. Вы можете попробовать, если sql 2005 или выше

ИЗМЕНИТЬ: Взял вторую группу, поскольку я думаю, вам нужен только один результат для средних активов

With clientsum (client,assets)
as
(
    SELECT     CLIENT, SUM(asset) AS assets
    FROM         CLIENTTABLE
    GROUP BY CLIENT
)
SELECT avg(assets) AS Expr1
FROM  clientsum
4
ответ дан 29 November 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: