Samoht: Kreuztabelle? Oder doch nicht

Beitrag lesen

Gudn!

Gehe ich nun davon aus, dass auf der Spaltenkombination messreihe, lambda ein kombinierter eindeutiger Index liegt, so gibt es für jedes Tupel (lambda, messreihe) genau einen Wert, den Du anzeigen möchtest.

Richtig, sonst hätte ich was falsch gespeichert :)
Abgesehen davon liebt sowieso ein Unique über den Spalten.

Da Du für jeden lambda-Wert eine einzige Zeile haben willst, ist eine Gruppierung nach lambda erforderlich. Für jeden unterschiedlichen Wert der Spalte messreihe willst Du eine eigene Spalte erzeugen.

Da Du eine Gruppierung verwendest, solltest Du auf die weiteren Spalten eine Aggregatsfunktion anwenden (auch wenn MySQL das nicht unbedingt haben will). MAX, MIN, AVG sollten alle den einzigen vorhandenen Wert liefern. Ich verwende einfach MAX.

Ah, verstehe. Verstehen ist zwar leider nicht merken, dafür mache ich nicht genügend "komplizierte" (= "nicht standard") Abfragen, aber zumindest ein Schritt dahin...

Bei Deinen Beispieldaten sähe das Statement wie folgt aus:

SELECT       Gib mir zu jedem unterschiedlichen Wert der Spalte
    lambda,  -- lambda
[...]
FROM
    daten
GROUP BY lambda


>   
> Dies liefert das gewünschte Resultat.  
>   
> | lambda | messreihe2 | messreihe3 | messreihe5 |  
> | 1.7    | 2.55       | 3.21       | 3.86       |  
> | 1.8    | 3.45       | 2.89       | 2.28       |  
> | 1.9    | 4.32       | 1.42       | 1.12       |  
  
Ich bin echt begeistert, das Ergebnis sieht so aus, wie ich es mir vorgestellt habe. Alleine wäre ich da sicher nicht drauf gekommen.  
  
  

> solltest Du in PHP somit bequem zusammenbauen können. [...]  
  
Das war mein Gedanke. Eine Abfrage vorher werden die messreihen bestimmt, die benötigt werden (aus einer anderen Tabelle), hier ging es um die Messdaten, um sie plotten zu können.  
  

> Weiterhin solltest Du unbedingt die Performance dieser Abfrage mit Deiner Datenmenge prüfen, und mit Hilfe von EXPLAIN schauen, ob Indexe genutzt werden können.  
  
Werde mit ansehen. Wobei die Performance mich in erster Linie überhaupt nicht interessiert, außer die Abfragen würden Minuten dauern (was sie aber mit den ersten Tests kein bisschen tun).  
  
Erst hatte ich angefangen mit PHP die Arrays neu zu strukturieren, nur wäre das nicht wirklich flexibel gewesen, bzw. umständlich. Habs mir doch gedacht, dass das SQL selber hinbekommen müsste :)  
  
Vielen herzlichen Dank nochmal an Dich und Ilja, Ihr habt mir sehr geholfen!  
  
  
Gruß aus Fürth in Mittelfranken,  
Samoht

-- 
fl:| br:> va:) ls:< n4:( ss:) de:] js:| mo:}