Seleccione las filas más recientes que coincidan con una condición en SQLite

Digamos que tengo una table:

Name, status, timestamp 

Y quiero seleccionar las filas que coinciden con el estado = 'activo', pero solo aquellas que tienen la timestamp más reciente para cada una de ellas. Entonces, si hubiera filas como esta:

 Bob, active, 5/10/2010 Bob, active, 6/12/2010 Ann, inactive, 6/12/2000 Ann, active, 9/3/2009 Ann, active, 9/25/2010 

Me gustaría que vuelva

 Bob, active, 6/12/2010 Ann, active, 9/25/2010 

¿Cómo puedo hacer esto? Estoy usando SQLite, si es importante.

Gracias.

 select name, status, max(timestamp) from my_table where status = 'active' group by name, status 

echa un vistazo a http://www.w3schools.com/sql/sql_groupby.asp

Así es como resuelvo este tipo de problema. Desea una fila para cada nombre de manera que no exista otra fila con el mismo nombre y una timestamp mayor:

 SELECT t1.* FROM MyTable t1 LEFT OUTER JOIN MyTable t2 ON t1.name = t2.name AND t1.timestamp < t2.timestamp WHERE t2.name IS NULL 

Pero esto aún puede devolver varias filas para cada nombre, porque podría tener más de una fila para un nombre dado con la misma timestamp máxima. Entonces use la key principal como un desempate:

 SELECT t1.* FROM MyTable t1 LEFT OUTER JOIN MyTable t2 ON t1.name = t2.name AND (t1.timestamp < t2.timestamp OR t1.timestamp = t2.timestamp AND t1.id < t2.id) WHERE t2.name IS NULL 

Supongo que id es una key principal para este ejemplo, pero cualquier otra columna única que aumente en valor cronológicamente funcionaría.

Bill, creo que lo tengo funcionando ahora (parece elegir las filas correctas en diferentes datos de testing). Utilicé su consulta y agregué la condición t1.active_status! = 'Active', ya que eso se encargará de todo lo que esté inactivo. Toda la consulta se ve así:

 SELECT t1.*<br> FROM TrialTypes t1<br> LEFT OUTER JOIN TrialTypes t2 ON t1.name = t2.name <br> AND (t1.start_date < t2.start_date OR t1.start_date = t2.start_date AND t1.rowid < t2.rowid)<br> WHERE t2.name IS NULL and t1.active_status != 'active'<br> 

Muchas gracias por la ayuda. Obviamente, soy nuevo en más de consultas SQL básicas. Esto me ayuda a enseñarme, ¡gracias!