Hallo Loitz,
wenn theoretisch feststeht, dass es nicht funktionieren kann, kann ich ja auch noch meinen Senf dazu geben.
Ich habe mich mal an RaHis Ansatz orientiert und benutze auch 2 Abfragen für meine Lösung.
Abfrage1: Rechnet wie bei RaHi die Durchschnittswerte aus, allerdings hier die der Duplikate:
SELECT T1.A AS SpalteA,
(SELECT avg(T.B) FROM T1 as T
WHERE (T.B between (T1.B-0.03) and (T1.B+0.03)) and (T.C between (T1.C-0.05) and (T1.C+0.05)) ) AS SpalteB,
(SELECT avg(T.C) FROM T1 as T
WHERE (T.C between (T1.C-0.05) and (T1.C+0.05)) and (T.B between (T1.B-0.03) and (T1.B+0.03)) ) AS SpalteC
FROM T1;
Diese WHERE-Klauseln sehen etwas belastend aus, sind aber nötig. Damit gibts eine Tabelle, die die Durchschnittswerte
und die Nicht-Durchschnittswerte enthält.
Um nur die Durchschnittswerte rauszufiltern, habe ich die Abfrage2:
SELECT DISTINCT *
FROM TestABC AS ABC
WHERE (SELECT count(*)
FROM TestABC as T
WHERE (T.SpalteA=ABC.SpalteA) and (T.SpalteB=ABC.SpalteB) and (T.SpalteC=ABC.SpalteC))
>=2;
Damit erhalte ich auch für die Tabelle:
A B C
heute 0,043 -1,587
morgen 24,983 4,456
morgen 26,234 4,456
heute 0,019 -1,537
heute 0,031 -1,545
gestern 0,067 3,445
gestern 0,057 3,435
gestern 0,062 3,439
Die Lösung:
SpalteA SpalteB SpalteC
gestern 0,062 3,43966666666667
heute 0,031 -1,55633333333333
Ist sicher keine sonderlich performante Lösung, aber sicher besser als mit Hand rausgesucht.
Wenn sie überhaupt wirklich richtig ist. So ganz sicher bin ich mir da nicht.
Gruß
lorf