Al final del artículo os dejo los scripts de creación de la tabla y los datos en postgreSQL
En esta ocasión no comento mucho las consultas porque están comentadas en el artículo de MySql me limito a migrar las consultas para que funcionen en postgreSQL
Obtener el numero total de registros por año
Select count(EXTRACT(YEAR FROM payment_date)) as total, EXTRACT(YEAR
FROM payment_date) as año FROM payment
GROUP BY EXTRACT(YEAR FROM payment_date)
Agrupando por mes y año
Select count(EXTRACT(MONTH FROM payment_date)) as total, EXTRACT(MONTH FROM payment_date), EXTRACT(YEAR FROM payment_date) as año
FROM payment
GROUP BY EXTRACT(YEAR FROM payment_date), EXTRACT(MONTH FROM payment_date)
Ahora añadiremos una clausula Where para filtrar por año
Select count(EXTRACT(MONTH FROM payment_date)) as total, EXTRACT(MONTH FROM payment_date), EXTRACT(YEAR FROM payment_date) as año
FROM payment
WHERE EXTRACT(YEAR FROM payment_date) = '2005'
GROUP BY EXTRACT(YEAR FROM payment_date), EXTRACT(MONTH FROM payment_date)
También podemos filtrar por días
Select count(EXTRACT(DAY FROM payment_date)) as total, EXTRACT(DAY FROM payment_date) as dia,
EXTRACT(MONTH FROM payment_date) as mes, EXTRACT(YEAR FROM payment_date) as año
FROM payment
GROUP BY EXTRACT(DAY FROM payment_date), EXTRACT(MONTH FROM payment_date), EXTRACT(YEAR FROM payment_date)
Y filtrar por días concretos
Select count(EXTRACT(DAY FROM payment_date)) as total, EXTRACT(DAY FROM payment_date) as dia,
EXTRACT(MONTH FROM payment_date) as mes, EXTRACT(YEAR FROM payment_date)
FROM payment
WHERE EXTRACT(DAY FROM payment_date) in ( '21', '27', '14')
GROUP BY EXTRACT(DAY FROM payment_date), EXTRACT(MONTH FROM payment_date),EXTRACT(YEAR FROM payment_date)
También podemos filtrar por horas, minutos y segundos si es necesario utilizando la función EXTRACT(HOUR FROM payment_date) ...
Os dejo el link a los scripts para crear la tabla payment en postgreSQL, y el link al script que he utilizado para migrar de MySql a postgreSQL, aunque este aun no esta del todo terminado y contiene algún que otro fallo, sobre todo con caracteres raros.
Migrar de MySql a postgreSQL
https://github.com/depruebas/mysql-to-posgresql-migrator
scripts tabla payment
https://github.com/depruebas/tabla-payment-sakila-postgreSQL
Y esto es todo amigos, feliz programming!
Saludos
Alex.