119 lines
5.3 KiB
SQL
119 lines
5.3 KiB
SQL
TRUNCATE TABLE aw_workforce.agg_workforce_productivity_hourly;
|
|
|
|
INSERT INTO aw_workforce.agg_workforce_productivity_hourly
|
|
SELECT
|
|
toStartOfHour(event_time) AS bucket_start,
|
|
toDate(event_time) AS event_date,
|
|
|
|
if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_workstation_user', 'is_active', (host_name, user_login), 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'branch', (host_name, user_login), '') != '',
|
|
dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'branch', (host_name, user_login), 'unknown'),
|
|
'unknown'
|
|
) AS branch,
|
|
if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_workstation_user', 'is_active', (host_name, user_login), 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'department', (host_name, user_login), '') != '',
|
|
dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'department', (host_name, user_login), 'unknown'),
|
|
'unknown'
|
|
) AS department,
|
|
|
|
'desktop' AS activity_type,
|
|
if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_application_category', 'is_active', process_name, 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_application_category', 'category', process_name, '') != '',
|
|
dictGetStringOrDefault('aw_workforce.dict_application_category', 'category', process_name, 'unknown'),
|
|
'unknown'
|
|
) AS category,
|
|
if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_application_category', 'is_active', process_name, 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_application_category', 'productivity_class', process_name, '') != '',
|
|
dictGetStringOrDefault('aw_workforce.dict_application_category', 'productivity_class', process_name, 'unknown'),
|
|
'unknown'
|
|
) AS productivity_class,
|
|
|
|
toUInt64(sum(duration_sec)) AS duration_sec,
|
|
toUInt64(count()) AS event_count,
|
|
toUInt64(sum(if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_workstation_user', 'is_active', (host_name, user_login), 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'employee_name', (host_name, user_login), '') != '',
|
|
0,
|
|
1
|
|
))) AS unknown_subject_events,
|
|
toUInt64(sum(if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_application_category', 'is_active', process_name, 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_application_category', 'category', process_name, '') NOT IN ('', 'unknown'),
|
|
0,
|
|
1
|
|
))) AS unknown_category_events
|
|
FROM aw_workforce.aw_window_events
|
|
GROUP BY
|
|
bucket_start,
|
|
event_date,
|
|
branch,
|
|
department,
|
|
activity_type,
|
|
category,
|
|
productivity_class;
|
|
|
|
INSERT INTO aw_workforce.agg_workforce_productivity_hourly
|
|
WITH
|
|
lowerUTF8(
|
|
domain(if(position(url, '://') = 0, concat('http://', url), url))
|
|
) AS domain_name
|
|
SELECT
|
|
toStartOfHour(event_time) AS bucket_start,
|
|
toDate(event_time) AS event_date,
|
|
|
|
if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_workstation_user', 'is_active', (host_name, user_login), 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'branch', (host_name, user_login), '') != '',
|
|
dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'branch', (host_name, user_login), 'unknown'),
|
|
'unknown'
|
|
) AS branch,
|
|
if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_workstation_user', 'is_active', (host_name, user_login), 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'department', (host_name, user_login), '') != '',
|
|
dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'department', (host_name, user_login), 'unknown'),
|
|
'unknown'
|
|
) AS department,
|
|
|
|
'browser' AS activity_type,
|
|
if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_domain_category', 'is_active', domain_name, 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_domain_category', 'category', domain_name, '') != '',
|
|
dictGetStringOrDefault('aw_workforce.dict_domain_category', 'category', domain_name, 'unknown'),
|
|
'unknown'
|
|
) AS category,
|
|
if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_domain_category', 'is_active', domain_name, 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_domain_category', 'productivity_class', domain_name, '') != '',
|
|
dictGetStringOrDefault('aw_workforce.dict_domain_category', 'productivity_class', domain_name, 'unknown'),
|
|
'unknown'
|
|
) AS productivity_class,
|
|
|
|
toUInt64(sum(duration_sec)) AS duration_sec,
|
|
toUInt64(count()) AS event_count,
|
|
toUInt64(sum(if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_workstation_user', 'is_active', (host_name, user_login), 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_workstation_user', 'employee_name', (host_name, user_login), '') != '',
|
|
0,
|
|
1
|
|
))) AS unknown_subject_events,
|
|
toUInt64(sum(if(
|
|
dictGetUInt8OrDefault('aw_workforce.dict_domain_category', 'is_active', domain_name, 0) = 1
|
|
AND dictGetStringOrDefault('aw_workforce.dict_domain_category', 'category', domain_name, '') NOT IN ('', 'unknown'),
|
|
0,
|
|
1
|
|
))) AS unknown_category_events
|
|
FROM aw_workforce.aw_browser_events
|
|
WHERE domain_name != ''
|
|
GROUP BY
|
|
bucket_start,
|
|
event_date,
|
|
branch,
|
|
department,
|
|
activity_type,
|
|
category,
|
|
productivity_class;
|