У меня есть список документов, созданных пользователем, с датой, номером недели, некоторым полем описания. Мне нужно рассчитать, сколько документов было создано каждую неделю и сколько пользователей приняли участие. Используя запрос, подобный приведенному ниже, я могу легко рассчитать количество созданных документов, к сожалению, количество отдельных пользователей умножается, так как один пользователь может создавать документы в разных категориях. Поэтому некоторые пользователи подсчитывают много раз.
sel WEEK
, DESCRIPTION
, count(*) as DOC_CNT
,count(distinct USER_ID) as USER_CNT
from THE_TABLE_1
group by 1,2;
Я хотел бы подсчитывать разных пользователей каждую неделю, независимо от поля ОПИСАНИЕ. Вы знаете какой-нибудь элегантный способ получить это? Я использую движок Teradata, если это будет иметь значение.
Спасибо
РЕДАКТИРОВАТЬ: ввод выглядит так:
DOC_NO USER_ID DT WEEK day_of_week DESCRIPTION
1 0019071988 AC_N490314 10/03/2020 10 3 Maintain Business Partner
2 0018864387 AC_SSELVAM1 03/03/2020 9 3 Customer Change
3 0018840898 AC_RHARIHAR1 02/03/2020 9 2 Change Asset
4 0018883336 AC_AGNANA1 03/03/2020 9 3 Create Asset
5 0017743110 AC_DKUPPUSA1 03/02/2020 5 2 Change Bank
6 0017946108 AC_SMADHESH 07/02/2020 5 6 Create Supplier
7 0019573163 AC_SJAYACHA1 26/03/2020 12 5 Select Idocs
8 0017660339 AC_SSELVAM1 31/01/2020 4 6 Create material
9 0018324802 AC_DKUPPUSA1 18/02/2020 7 3 VIM Workplace
10 0019161678 AC_N478361 14/03/2020 10 7 Release Blocked Invoices
и вывод должен быть таким, как показано ниже, хотя значения USER_CNT здесь просчитаны.
WEEK DESCRIPTION DOC_CNT USER_CNT
1 10 Reset Cleared Items 229 13
2 3 Maintain Business Partner 600 10
3 4 Data Capture/Indexing Invoice 4,974 31
4 7 Other 1,207 54
5 9 Check VIM Business Rules 2,132 23
6 6 Check VIM Business Rules 2,863 29
7 5 Other 1,096 52
8 12 Check VIM Business Rules 1,390 19
9 4 Check VIM Business Rules 2,710 27
10 4 Other 1,462 56