EasyGROUP BY & Aggregation

Revenue by month using TO_CHAR

The query

SQL
SELECT
  TO_CHAR(order_date, 'YYYY-MM') AS month,
  TO_CHAR(order_date, 'Mon YYYY') AS month_label,
  COUNT(*) AS orders,
  SUM(total) AS revenue
FROM orders
WHERE status = 'completed'
GROUP BY TO_CHAR(order_date, 'YYYY-MM'), TO_CHAR(order_date, 'Mon YYYY')
ORDER BY month;
Tested against PostgreSQL 16

Note

TO_CHAR for formatted time-series grouping. YYYY-MM sorts correctly as string, Mon YYYY is display-friendly.

Tables referenced