Можно ли суммировать два значения, которые исходят от COUNT(DISTINCT [something])
? У меня есть таблица, в которой есть около 400 миллионов записей. Эта таблица увеличивается в зависимости от посещений пользователей , и теперь я хочу получить базы COUNT(DISTINCT [SpecialUser])
по обычным запросам, для ответа на запрос требуется около 5-6 минут. Теперь я думал, если это возможно:Sql Sum of Distinct
Сохранить ответ от Вчерашнего
COUNT(DISTINCT [SpecialUser])
, назови егоtotal
и затем просуммировать его с сегодняшним результатом увеличения скорости запросов? Я знаю, что это невозможно в обычном режиме из-за Distinct, но есть ли другое решение для этого?
Для справки, вот полный запрос:
DECLARE @Total_User int
SELECT @Total_User = COUNT(DISTINCT [SpecialUser])
FROM [dbo].[Visit] AS V
WHERE
LEN([SpecialUser]) > 1
UPDATE [dbo].[Stat]
SET [email protected]_User
WHERE ID = 1;
@nyzm: Хороший улов, однако, .NET поддерживает многие РСУБД. –
@nooob change your avatar man .. проверьте ответ ниже и попробуйте узнать больше. – woofmeow
@nooob: у вас есть всего 400M строк. Но сколько уникальных пользователей у вас в этой таблице? Я имею в виду результат 'SELECT count (пользователь DISTINCT) ...'? – mvp