Wonach muss ich da suchen?
wie ist es möglich zwei Werte unterschiedlicher Zeilen gegeneinander auszuwerten?
Einklappen
X
-
^°INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
ich möchte eine statistische Auswertung durchführen...
Die Werte folgender Tabelle sollen ausgewertet werden:
12 14
14 17
12 14
12 14
12 18
ich möchte zeigen, dass die fixe Zahl 12 häufiger gemeinsam mit 14 auftritt als mit 18. Es soll für diese Tabelle der Wert 14 errechnet werden.
Ich habe hier einen ersten Ansatz
Leider ist die Lösung für die Auswertung größerer Datenmengen unbrauchbar. Gibt es da eine bessere Lösung?
<?php
include 'mysql.inc.php';
include 'connect.php';
$sql = "SELECT
COUNT(id2) as anzahl,
SUM(id2) as summe
FROM
ids
WHERE id1 = '12'
GROUP BY id2
;";
$result = mysql_query($sql) OR die (mysql_error());
while($row = mysql_fetch_assoc($result))
{
if(!isset($wert1))
{
$anzahl1 = $row['anzahl'];
$wert1 = $row['summe'] /$anzahl1;
} else {
$anzahl2 = $row['anzahl'];
$wert2 = $row['summe']/$anzahl2;
}
}
if($anzahl1 > $anzahl2)
{
echo $wert1;
} else {
echo $wert2;
}
?>
Kommentar
-
Okay, jetzt wissen wir doch schonmal, worum es geht. Als nächstes lernen wir die PHP-Tags des Forums kennen. Danke.
Ich würde dein Problem so angehen:
SELECT (SELECT COUNT(id1) ... WHERE id1 = 12 AND id2 = 14) > (SELECT COUNT(id1) ... WHERE id1 = 12 AND id2 = 18)
Das sollte 1 oder 0 zurückgeben, aber ich bin mir gar nicht sicher, ob an dieser Stelle Subqueries zulässig sind. Wenn nicht, kannst du auch einfach
(SELECT COUNT(id1) ... WHERE id1 = 12 AND id2 = 14) UNION
(SELECT COUNT(id1) ... WHERE id1 = 12 AND id2 = 18)
ausführen und die zwei Werte vergleichen.
Kommentar
-
Um dein Vorhaben den anderen ein bischen genauer zu erklären, verweise ich mal auf diesen Thread, wo das Problem schonmal angeschnitten wurde.mfg - sagg
Kommentar
Kommentar