Slick 2.1.0 Filter Max Version en una tabla

Estoy tratando de get el número máximo de versión de una tabla. Los contenidos de mi table son:

id externalId name version 1 10 n1 1 2 65 n2 2 3 10 n3 2 4 77 n4 1 

En la tabla anterior, tenemos filas que tienen la versión máxima como 2, por lo que mi consulta debe devolver esta fila de versión máxima para el ID externo dado que paso a mi consulta.

Ahora estoy convencido de escribir la versión Slick de la misma. Alguna sugerencia, pointers? Esto es lo que tengo hasta ahora: (Paso en el ID externo)

 for { myTable1 <- myTable1Elems if myTable1.version === ( myTable1Elems .filter(_.externalId === s"$externalId") .map(_.version) .max ) } yield myTable1 

Esto parece estar haciendo lo incorrecto, ya que mis testings muestran que devuelve 2 filas cuando solicito la versión máxima para externalId = 77. Obtengo ambos

 1 10 n1 1 4 77 n4 1 

devuelto como resultados que definitivamente está mal. ¡Supongo que necesito agruparme, pero no pude entender cómo podría escribir el combinador Slick! ¿Alguna ayuda?

Así que logré solucionar esto:

 private def configMaxVersionFilter(extId: String) = for { tbl <- myTable1Elems if tbl.externalId === s"$extId" && tbl.version === ( myTable1Elems .filter(_.externalId === s"$extId") .map(_.version) .max ) } yield tbl