SQL - wie gibt man nur ein GROUP aus?

Hallo,

ich simuliere 100 mal das Spiel 17+4. Am Ende soll nur der erste Versuch, wo man tatsächlich 21 Punkt hat, ausgegeben werden.

Nach paar SQL Befehlen:

SELECT *
FROM 17+4_tabelle
WHERE trcumsum

Hallo,

ich nehme mal an du hast eine Tabelle mit 100 Spielergebnissen:

SELECT spiel, sum(punkte) AS ergebnis
FROM tabelle
GROUP BY spiel
HAVING sum(punkte) = 21
ORDER BY spiel
FETCH FIRST 1 ROWS ONLY

Du bekommst eine Liste der Spielenummern, deren Ergebnis 21 war:

Spiel Ergebnis
===== ========

13 21
22 21
41 21
67 21

Dann sortierst du nach Spiel-Nummer aufsteigend und wählst dann aus dieser Datenmenge nur den ersten Satz aus.

Gruss,
SomeOne

Danke für die schnelle Antwort,

ich nehme mal an du hast eine Tabelle mit 100
Spielergebnissen

Ich habe eine Tabelle mit 800 Ergebnissen. Jeder Versuch entsteht aus 8 mal eine Karte ziehen (spätestens nach 8 Ziehungen hat man immer 21).

Die Tabelle sieht ca. so aus:

spiel | karte | kummulierte summe |karte nummer
1 10 10 1
1 3 13 2

1 4 50 8
2 10 10 1
2 4 14 2

Ich begrenze die kumulierte Summe auf max 21 (WHERE kum.sum

Servus Darek,

also du willst alle Ergebnisse ausgeben für das Spiel, dessen kummulierte Summe 21 war ?

SELECT *
FROM ergebnisse
WHERE spiel = (SELECT min(spiel)
FROM ergebnisse
WHERE ergebnisse.KumSum = 21)

Das Sub-Query sucht dir die kleinste Spiel-Nummer raus, dessen Ergebnis 21 war.
Das äussere Query selektiert alle Zeilen dieser Spiel-Nummer.

Das sollte die Aufgabe lösen, so ich sie denn richtig verstanden habe.

Danke für Rückmeldung und Gruss,
SomeOne