У меня есть пример таблицы:
id date score
11 1/1/2017 14:32 25.34
4 1/2/2017 12:14 34.34
25 1/2/2017 18:08 37.15
4 3/2/2017 23:42 47.24
4 4/2/2017 23:42 54.12
25 7/3/2017 22:07 65.21
11 9/3/2017 21:02 74.6
25 10/3/2017 5:15 11.3
4 10/3/2017 7:11 22.45
Моя цель состоит в том, чтобы рассчитать первую (!) Дату (ГГГГ-ММ-ДД), в которую совокупный показатель идентификатора достиг 100 (> =).Для этого я написал следующий код:
SELECT date(date),id, score,
sum(score) over (partition by id order by date(date) rows unbounded preceding) as cumulative_score
FROM test_q1
GROUP BY id, date, score
Order by id, date
Возвращает:
date id score cumulative_score
1/1/2017 11 25.34 25.34
9/3/2017 11 74.6 99.94
1/2/2017 4 34.34 34.34
3/2/2017 4 47.24 81.58
4/2/2017 4 54.12 135.7
10/3/2017 4 22.45 158.15
1/2/2017 25 37.15 37.15
7/3/2017 25 65.21 102.36
10/3/2017 25 11.3 113.66
Я попытался добавить либо WHERE cumulative_score> = 100, либо HAVING совокупный счет> = 100,но он возвращает_
ОШИБКА: столбец "cumulative_score" не существует ЛИНИЯ 4: ГДЕ cumulative_score> = 100 ^ Состояние SQL: 42703 Символ: 206
Кто-нибудь знает, как решить эту проблему?
Спасибо
То, что я ожидаю, это:
date id score cumulative_score
4/2/2017 4 54.12 135.7
7/3/2017 25 65.21 102.36
А на выходе только идентификатор и дата.