Среднее количество SQL postgresql

#sql #postgresql #date #average

Вопрос:

Я хочу узнать, каково среднее число записей в столбцах таблицы (например, бронирования) в год(0-10 лет назад, 10-20 лет назад, 20 лет назад). Я знаю, как выполнить среднюю часть, но я не знаю, как классифицировать среднее значение по разным годам группы.

у меня есть этот код

 SELECT DATE_OF_RESERVATION,count(RESERVATIONID) AS RESERVATIONS
FROM RESERVATIONS
WHERE EXTRACT(YEAR FROM Current_Date) - DATE_OF_RESERVATION <= 10
GROUP BY DATE_OF_RESERVATION
 

Это код только для одной категории (первой). Я хочу сделать это для всех троих одновременно, но я не могу этого понять.

Комментарии:

1. Отметьте свой вопрос в базе данных, которую вы используете.

Ответ №1:

Вы можете использовать case выражение. Например:

 SELECT (CASE WHEN EXTRACT(YEAR FROM Current_Date) - DATE_OF_RESERVATION < 10
             THEN '[0-10)'
             WHEN EXTRACT(YEAR FROM Current_Date) - DATE_OF_RESERVATION < 20
             THEN '[0-20)'
             WHEN EXTRACT(YEAR FROM Current_Date) - DATE_OF_RESERVATION < 30
             THEN '[0-30)'
             ELSE 'More'
        END) as grp,
       COUNT(*) AS RESERVATIONS
FROM RESERVATIONS
GROUP BY grp;
 

Комментарии:

1. существует проблема с ОШИБКОЙ {COUNT ( )}: синтаксическая ошибка в СТРОКЕ 9 или рядом с «COUNT»: COUNT( )