我想知道每年(0-10年前、10-20年前和20+年前(表列条目(例如预订(的平均数量是多少。我知道如何做平均部分,但我不知道如何在不同的小组年份对AVG进行分类。
我有这个代码
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
这只是一个类别(第一个(的代码。我想在同一个查询中对这三个都执行此操作,但我无法解决。
您可以使用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;