[MySQL] Kleinster einmaliger wert

Bububoomt

ohne Vertrauen
ID: 10361
L
28 April 2006
19.666
769
Bekomme mal wieder das nicht hin.

Ich möchte den Kleinsten Wert einer Spalte haben, die einmalig ist.


Beispiel
ID WERT
1 10
2 3
3 5
4 5
5 10
6 2
7 2


Dann möchte ich ID=2 und WERT=3 haben.
 
Müsste irgendwie mit MIN() und COUNT() gehen:
1. Mit MIN() den kleinsten Wert ermitteln
2. Mit count() die Anzahl bestimmen
3. Nach endlich vielen Durchläufen von Schritt 1+2 muss die gesuchte ID herauskommen.
 
Guck mal, ob Dir das weiterhilft:
Code:
SELECT id, wert
FROM table
GROUP BY wert
HAVING COUNT(*) =1
ORDER BY wert ASC
LIMIT 0,1
 
Ich hab noch nie ne Subquery in Aktion gesehen, also keine Garantie, sondern nur ein Denkansatz:
SELECT MIN(`id`) FROM `table` WHERE `wert` IN (
SELECT `wert` FROM `table` GROUP BY `wert` HAVING COUNT(*)=1
)

edit:
Kommt an tleilax seine Query ran :biggrin:
 
Irgend sowas könnte Funktionieren:
SELECT t1.id, t1.value
FROM table AS t1 LEFTER JOIN table AS t2 ON t1.value = t2.value
WHERE t2.value = null
ORDER BY t1.value
LIMIT 1

..es könnte funktionieren! :ugly:
 
das von tleilax hat funktioniert, hatte das Having natürlich mal wieder nicht....


THX leute
 
SELECT t1.id, t1.val FROM test AS t1 LEFT JOIN test AS t2 ON t1.val = t2.val AND t1.id != t2.id WHERE t2.val IS NULL ORDER BY t1.val LIMIT 1;

So das Funktioniert ist ist ganz viel toller weil absolut sinnfrei! :ugly:
 
Wieso verwendet hier eigentlich keiner ein
SELECT id, MIN(wert) FROM table GROUP BY wert

anddie
 
Weil dort nur der kleinste Wert genommen wird. Wenn er aber doppelt vorkommt, soll er ja nicht genommen werden.

anddie schrieb:
Wieso verwendet hier eigentlich keiner ein
SELECT id, MIN(wert) FROM table GROUP BY wert

anddie