PostgreSQL: ¿Cómo devolver filas con respecto a una fila encontrada (resultados relativos)?

Perdona mi ejemplo si no tiene sentido. Voy a intentar con una simplificada para fomentar una mayor participación.

Considere una tabla como la siguiente:

       dt     |    mnth    |  foo
--------------+------------+--------
  2012-12-01  |  December  |
    ...
  2012-08-01  |  August    |
  2012-07-01  |  July      |
  2012-06-01  |  June      |
  2012-05-01  |  May       |
  2012-04-01  |  April     |
  2012-03-01  |  March     |
    ...
  1997-01-01  |  January   |  

Si buscas el disco condt más cercano a hoy sin revisar, ¿cuál sería la mejor manera de devolver también el3 registros de antemano y7 registros despues?

Decidí probar las funciones de ventanas:

WITH dates AS (
   select  row_number() over (order by dt desc)
         , dt
         , dt - now()::date as dt_diff
   from    foo
)
, closest_date AS (
   select * from dates
   where dt_diff = ( select max(dt_diff) from dates where dt_diff <= 0 )
)

SELECT * 
FROM   dates
WHERE  row_number - (select row_number from closest_date) >= -3
   AND row_number - (select row_number from closest_date) <=  7 ;

Siento que debe haber una mejor manera de devolver los registros relativos con una función de ventana, pero ha pasado un tiempo desde que los miré.

Respuestas a la pregunta(3)

Su respuesta a la pregunta