Ich habe eine Tabelle, die die Ähnlichkeit von zwei Fragen einer Testbank enthält. MySQL Zeile löschen ORDER BY COUNT DESC
Das bedeutet question_id 6
beträgt 84% ähnlich zu 10
question_id. Und es gibt 12 ähnliche Frage von question_id 6
.
Ich gerade was die relevantesten Fragen oder die Top 7 relevanten Fragen.
Ich habe Mysql delete order by gesehen und versucht:
DELETE FROM exam_relatedquestion
WHERE
`exam_relatedquestion`.id IN (
SELECT
`exam_relatedquestion`.id
FROM
(
SELECT `exam_relatedquestion`.id
FROM `exam_relatedquestion`
GROUP BY
`exam_relatedquestion`.from_question_id_id
ORDER BY
`exam_relatedquestion`.similarity DESC
LIMIT 7
) a
)
Aber die Fehlermeldung lautet:
[Err] 1055 - Ausdruck # 1 von SELECT-Liste ist nicht in GROUP BY-Klausel und enthält nichtaggregierte Spalte 'den.exam_relatedquestion.id', die funktional nicht von Spalten in GROUP BY-Klausel abhängig ist; dies ist unvereinbar mit sql_mode = only_full_group_by
Wie kann ich alle Zeilen löschen, die nicht die Top-7 relevant einer Frage sind?
Warum Sie in erster Linie 'GROUP BY' verwenden? –
@TimBiegeleisen Ich möchte Fragen in der Gruppe von 'from_question_id_id' sehen und dann das oberste relevante darin behalten. Aber ich weiß nicht, was der richtige Weg ist. – Aaron