[RESOLVIDO] [SQL] Remover Duplicados em outros grupos (Postgresql)

Olá

Tenho uma tabela, com seriais duplicados em diferentes horas ex>
Serial | Data/Hora
AB1 | 05/12/2012 08:00
AB2 | 05/12/2012 08:00
AB1 | 05/12/2012 15:00
AB2 | 05/12/2012 15:00

E gostaria de contar quantos seriais por hora, sem contar os seriais duplicados:
Tentei:

SELECT date_trunc('hour',tb_registro.datah)::text as hora, count(distinct tb_registro.serial) as cont FROM tb_registro WHERE ... GROUP BY hora, qtd order by dia;

Mas veja que preciso agrupar por hora, e assim ele também só faz o (distinct serial) naquela hora e não em todos os registros

no exemplo a saída ficaria assim:

05/12/2012 08:00 | 2
05/12/2012 15:00 | 2

Na real só tenho 2 seriais e não 4.
Até poderia ser eliminado um desses registros.

Obrigado.

Consegui isolar os repetidos da seguinte forma:

[code]

CREATE TEMP TABLE tb3 ON COMMIT DROP AS
SELECT
serial, min(datah) as datah, qtd --; filtra o primeiro serial que apareceu
FROM

WHERE

GROUP BY tb_registro.serial, tb_op.qtd
order by tb_registro.serial;

SELECT 
	date_trunc('hour',tb3.datah)::text as dia,
	tb3.qtd, 
	count(distinct tb3.serial) as cont
from tb3
GROUP BY   
	dia, qtd
order by dia;

Consegui isolar os repetidos da seguinte forma:

CREATE TEMP TABLE tb3 ON COMMIT DROP AS 
	SELECT
		serial, min(datah) as datah, qtd       --; filtra o primeiro serial que apareceu
	FROM 
...
	WHERE 
...
	GROUP BY   tb_registro.serial, tb_op.qtd
	order by tb_registro.serial;


	SELECT 
		date_trunc('hour',tb3.datah)::text as dia,
		tb3.qtd, 
		count(distinct tb3.serial) as cont
	from tb3
	GROUP BY   
		dia, qtd
	order by dia;

Apenas um comentário:

Você não precisa criar uma tabela temporária para isso.

Pega o select que monta tb3 e coloca no FROM da query que usa ela.