SQL Spaltenwerte summieren


#1

Guten Abend,

ich habe folgendes Problem!

[SQL]SELECT Wortsammlung.Wert
FROM Wortsammlung
INNER JOIN Wortassoziation
ON Wortsammlung.Wort = Wortassoziation.Wort[/SQL]

Ich hoffe dieser Query ist korrekt, er soll lediglich in beiden Tabellen die Spalten Wort abgleichen und sobald diese übereinstimmen den jeweiligen Wert(Spalte) aus Tabelle Wortsammlung speichern.

Innerhalb dieses Querys sollen aber noch alle Werte der verkommenen Wörter summiert und anschließend durch die Anzahl geteilt werden. WIe muss ich weiter vorgehen? Muss an dieser stelle ein View verwendet werden?

Ich hoffe ich könnte mir etwas helfen viele Grüße und vielen Dank

Dibbi


#2

Mir ist ehrlich gesagt nicht ganz klar was der SQL jetzt zurückgeben soll.
Könntest du mal dummyeinträge und die erwartete Ergebnismenge posten?


#3

Was ist der “Wert” wert eines Worts, im übrigen gibt es in SQL die SUM(…) und AVG(…)


#4

Also ich habe 2 Tabellen Wortsammlung und Wortassoziation.
Wortassoziation besteht aus 2 Spalten: ID und Wort!
Wortsammlung besteht aus 3 Spalten: ID, Wort und Wert!
Jedes Wort hat einen spezifischen Wert in der Tabelle Wortsammlung.

In beiden Tabellen sollen die Wortspalten verglichen werden. Wenn die Wortspalten jeweils die gleich Wörter beinhalten, sollen von diesen Wörter die Werte gespeichert, summiert und anschließend durch die Anzahl der ermittelten Wörter geteilt werden, sodass am Ende nur ein Wert zurückgegeben wird.

Ich hoffe ich habe mich verständlicher ausgedrückt sonst muss ich noch einen weiteren Versuch starten.
Trotzdem schonmal danke :wink:


#5

Was heißt “gespeichert…werden”? Wohin? Aktuell ist ja nur eine Abfrage zu sehen.
Was heißt “summiert und anschließend … geteilt”? Willst Du selbst summieren und anschießend teilen? Interessiert Dich nur die Summe/Durchschnitt? Für letzteres gibt es in SQL die bereits genannten Aggregatsfunktionen SUM und AVG. Beispiele dazu sollten leicht zu finden sein.


#6

“INNER JOIN” brauchst du nicht
“SUM” und “COUNT” sollten dir bei dem helfen, was du erreichen möchtest, die kannst natürlich auch kombinieren um dein Ergebnis zu kriegen.

SQLQuery
[spoiler]
[SQL]SELECT SUM(wert), COUNT(wert), (SUM(wert)/COUNT(wert)) AS ergebnis FROM wortsammlung, wortassoziation WHERE wortsammlung.wort = wortassoziation.wort;[/SQL][/spoiler]