Как всегда, хочу сделать с одним запросом sql.Иметь таблицу попыток отправки:
ID TIMESTAMP TASK_ID
1 2019-01-30 15:29:38 1
2 2019-01-30 15:29:39 1
3 2019-01-30 15:29:40 2
4 2019-01-30 15:29:41 3
Таблица задач:
ID EMAIL
1 boxOne@test.com
2 boxOne@test.com
3 boxTwo@test.com
Цель состоит в том, чтобы получить идентификаторы задач для уникальных писем с минимальным количеством попыток (в нашем случае это 2 и3).Проблема номер один в том, что я хочу сделать несколько тестов, используя H2, который не поддерживает оконные функции.Проблема вторая в том, что несколько задач могут иметь один и тот же адрес электронной почты.
Попробовал это:
SELECT TASK.id, TASK.EMAIL, count(att.TASK_ID)
FROM TASK
JOIN ATTEMPTS on TASK.id = ATTEMPTS.TASK_ID
GROUP BY ATTEMPTS.TASK_ID
и получить такой результат:
TASK.id EMAIL count(TASK.id)
1 boxOne@test.com 2
2 boxOne@test.com 1
3 boxTwo@test.com 1
, но мне нужно минимальное количество для каждогоуникальный адрес электронной почты, подобный этому:
TASK.id EMAIL count(TASK.id)
2 boxOne@test.com 1
3 boxTwo@test.com 1
min (count (TASK.id)) не работал для меня, результат всегда равен нулю.
Может ли это быть сделано без оконных функций, или я долженпринять временный результат и обработать его в моем коде?