Hinweis:
Einen "where in " kann man mit "where exists " erheblich beschleunigen, da ja die Gruppe selber keine Rolle spielt sondern nur das Vorkommen der Schlüssel.

Der b-Select fasst nur die Gruppe nach ff1, ff2, ff3 zusammen und sucht einzeln das jeweils kleinste fjj, fmm, ftt sowie fnr, die dadurch nicht mehr in Beziehung zueinander stehen.

Zu deinem (angepassten) Beispiel:

1, 1, 1, 2016, 04, 25, 77
1, 1, 1, 2017, 03, 15, 67
1, 1, 1, 2018, 02, 18, 78
1, 1, 1, 2019, 01, 30, 11

Bekommst du die Gruppe mit
1, 1, 1, 2016, 01, 15, 11

Pauschal kannst du auch per

min(digits(ff1) concat digits(ff2) concat digits(ff3) concat concat digits(fjj) concat digits(fmm) concat digits(ftt) concat digits(fnr))

den kleinsten Begriff über alles erhalten oder, wenn die 1. 3 Schlüssel relevant sind:

select ff1, ff2, ff3
, min(digits(fjj) concat digits(fmm) concat digits(ftt) concat digits(fnr))
from datei1
where exists (
)
group by ff1, ff2, ff3