Ich habe Schwierigkeiten, eine etwas komplexere SQL-Abfrage einzurichten. Was ich versuche zu tun, ist die letzten 24 Einträge für jede zr_miner_id
, aber ich bekomme immer SQL-Timeouts (die Tabelle hat etwa 40000 Einträge bisher). Also sagen wir, es gibt 200 Einträge für zr_miner_id
1 und 200 für zr_miner_id
2, würde ich mit 48 Ergebnissen enden.SQL-Abfrage zum Auswählen der letzten X-Einträge für ein bestimmtes nicht primäres Feld
Bisher bin ich mit der Abfrage unten gekommen. Was dies tun soll, ist jedes Ergebnis in zec_results
auszuwählen, das weniger als 24 neuere Einträge mit demselben zr_miner_id
hat. Ich konnte mir keinen besseren Weg vorstellen, um diese Aufgabe zu erledigen, aber andererseits bin ich noch nicht so weit fortgeschritten bei SQL.
SELECT results_a.*
FROM zec_results results_a
WHERE (
SELECT COUNT(results_b.zr_id)
FROM zec_results AS results_b
WHERE results_b.zr_miner_id = results_a.zr_miner_id
AND results_b.zr_id >= results_a.zr_id
) <= 24
Danke für Ihre Antwort. Das ist völlig außerhalb meiner Fähigkeiten. Ich bekomme den folgenden Fehler: # 1054 - Unbekannte Spalte 'z.zr_miner_id' in Feldliste in der Nähe von "FROM" an Position 194. –
Es gibt auch an: 1. Dieser Typ der Klausel wurde zuvor analysiert. (nahe "FROM" an Position 194) 2. Nicht erkannter Anweisungstyp. (in der Nähe von "FROM" an Position 194) –