Вам не нужны агрегаты в GROUP BY.
Как так, вам нужна только одна строка назад?
SELECT COUNT(distinct(E_KEY)) AS S1
, CASE WHEN SUM(Events.EVENT_TIME_SPENT) < 1 THEN 'a. Low Intensity'
WHEN SUM(Events.EVENT_TIME_SPENT) >= 1 AND SUM(Events.EVENT_TIME_SPENT) < 3
THEN 'b. Medium Intensity'
WHEN SUM(Events.EVENT_TIME_SPENT) >= 3 THEN 'c. High Intensity'
ELSE 'Unspecified' END AS D1
FROM
TABLE(VALUES(1,1),(1,2),(2,2)) AS Events (E_KEY, EVENT_TIME_SPENT)
, которая возвращает
S1 D1
-- -----------------
2 c. High Intensity
если вы хотите сгруппировать что-то, то, например, это работает
SELECT E_KEY AS S1
, CASE WHEN SUM(Events.EVENT_TIME_SPENT) < 1 THEN 'a. Low Intensity'
WHEN SUM(Events.EVENT_TIME_SPENT) >= 1 AND SUM(Events.EVENT_TIME_SPENT) < 3
THEN 'b. Medium Intensity'
WHEN SUM(Events.EVENT_TIME_SPENT) >= 3 THEN 'c. High Intensity'
ELSE 'Unspecified' END AS D1
FROM
TABLE(VALUES(1,1),(1,2),(2,2)) AS Events (E_KEY, EVENT_TIME_SPENT)
GROUP BY
E_KEY
S1 D1
-- -------------------
1 c. High Intensity
2 b. Medium Intensity
или если вы не хотите SUM () чем-то EVENT_TIME_SPENT, вы можете быть после этого
SELECT COUNT(DISTINCT E_KEY) AS S1
, CASE WHEN Events.EVENT_TIME_SPENT < 1 THEN 'a. Low Intensity'
WHEN Events.EVENT_TIME_SPENT >= 1 AND Events.EVENT_TIME_SPENT < 3
THEN 'b. Medium Intensity'
WHEN Events.EVENT_TIME_SPENT >= 3 THEN 'c. High Intensity'
ELSE 'Unspecified' END AS D1
FROM
TABLE(VALUES(1,1),(1,2),(2,2),(2,0),(1,4)) AS Events (E_KEY, EVENT_TIME_SPENT)
GROUP BY
CASE WHEN Events.EVENT_TIME_SPENT < 1 THEN 'a. Low Intensity'
WHEN Events.EVENT_TIME_SPENT >= 1 AND Events.EVENT_TIME_SPENT < 3
THEN 'b. Medium Intensity'
WHEN Events.EVENT_TIME_SPENT >= 3 THEN 'c. High Intensity'
ELSE 'Unspecified' END
S1 D1
-- -------------------
1 a. Low Intensity
2 b. Medium Intensity
1 c. High Intensity