2016-01-14 3 views
1

Я пытаюсь получить количество дней из таблицы, это мой код (который работает отлично):Применить условие к агрегатной функции результата

SELECT 
    person, 
    sum(((until - since) + 1)) as days 
FROM 
    periods 
GROUP BY person; 

Теперь я хочу, чтобы добавить условие, чтобы сохранить только те, с 365 или более дней, так что я написал этот код, но он не работает:

SELECT 
    person, 
    sum(((until - since) + 1)) as days 
FROM 
    periods 
GROUP BY person 
HAVING days = 365; 

EDIT: ошибка: колонка «дней» не существует

+0

"* не работает *" не является действительным сообщением об ошибке Postgres. Пожалуйста, напишите ** точное сообщение об ошибке **, которое вы получите. –

+1

Попробуйте: «ИМЕЕТ сумму (((до тех пор, пока) + 1)) = 365' – krokodilko

ответ

1

Вы не можете использовать " HAVING ", если вы называете столбцы" AS ". Попробуй это;

SELECT 
    person, 
    sum(((until - since) + 1)) as days 
FROM 
    periods 
GROUP BY person 
HAVING sum(((until - since) + 1)) = 365; 
+1

Вы упустили« HAVING ». (См. Ответ Кордирко.) – Travis