Мне нужен список того, сколько раз файл обрабатывался через нашу систему.Например, на неделе 1 для заданного идентификатора хранилища x количество файлов обработано 1 раз, x число обработано 2 раза и т. Д.Я написал запрос, который использует временную таблицу и несколько объединений, но он не масштабируется.Например, если файл обрабатывается 42 раза, запрос в его текущей форме будет абсурдно длинным.Я думаю, что мне нужно несколько самостоятельных присоединений, может быть?Или подзапросы?Но мне очень тяжело разобраться со следующим шагом.
В настоящее время я складываю все это в заявлениях профсоюзов.Ответ правильный и точный.Но моя цель - сделать его масштабируемым и не полагаться на жесткое кодирование.Я попытался переписать с использованием count (*)> 1, но это просто возвращает нас к жесткому кодированию и использованию союзов.Должен быть более динамичный способ.
Drop table If exists #a;
select FileMasterID, datepart(ww, complete_dttm) AS WeekNum, count(1) as TimesProcessed, whid
INTO #a
from Reporting.Log
where Complete_dttm > '2018-12-31'
Group By FileMasterID, datepart(ww, complete_dttm), whid;
/*
This is the reporting output of the query to answer how many files have been processed once, twice and so on.
*/
select whid, COUNT(1) AS FileCount, 'Processed 1 time' AS PT from #a where TimesProcessed=1 GROUP BY whid UNION ALL
select whid, COUNT(1) AS FileCount, 'Processed 2 times' AS PT from #a where TimesProcessed=2 GROUP BY whid UNION ALL
select whid, COUNT(1) AS FileCount, 'Processed 3 times' AS PT from #a where TimesProcessed=3 GROUP BY whid UNION ALL
select whid, COUNT(1) AS FileCount, 'Processed 4 times' AS PT from #a where TimesProcessed=4 GROUP BY whid UNION ALL
select whid, COUNT(1) AS FileCount, 'Processed 5 times' AS PT from #a where TimesProcessed=5 GROUP BY whid UNION ALL
select whid, COUNT(1) AS FileCount, 'Processed 6 times' AS PT from #a where TimesProcessed=6 GROUP BY whid
Order by whid, PT
Поиск количества файлов, обработанных 1 раз, 2 раза, 3 раза и т. Д.
whid FileCount PT
1 82108 Processed 1 time
1 3203 Processed 2 times
1 78 Processed 3 times
1 13 Processed 4 times
2 78702 Processed 1 time
2 1209 Processed 2 times