Frage von Jupiter7468, 27

Wie macht man in einer mysql Tabelle einen Mittelwert?

Sollte man "dynamisch" neue Spalten einfügen oder in einer Spalte die Werte mit Beistrich getrennt eingeben?

Wert Erste Spalte: 2 Wert Zweite Spalte: 3 Wert Dritte Spalte: 4

ODER

Mittelwert Spalte: 2,3,4

Antwort
von GoimgarDE, 23

Bitte schreibe deutlicher was du willst? Was hat es mit den 3 spalten auf sich?
Wieso dynamisch neue Spalten?

Kommentar von Jupiter7468 ,

Soll ich in mysql Spalten dynamisch hinzufügen wenn neue Werte eingetragen werden, von denen ich anfangs nicht weiß wieviele es gibt?

Oder soll ich eine Spalte nehmen und alle Wert dort mit Beistrich getrennt eingeben?

Natürlich kann ich im Vorhinein 10000 Spalten erstellen, sodass man wahrscheinlich niemals an's Limit kommt, aber ist das die beste Lösung?

Angenommen ich will wissen, wieviel Geld ich im Mittelwert pro Monat eingenommen habe.

Jetzt habe ich 10 Spalten dafür gemacht um 10 Werte einzutragen, nehme aber 12 mal im Monat Geld ein.

Soll ich nun 2 Spalten dynamisch hinzufügen?
Oder soll ich gleich1000 Spalten erstellen, sodass ich wahrscheinlich nie ans limit komme?

Kommentar von GoimgarDE ,

Erst mal die kurze Antwort:

Du willst natürlich nicht dynamisch Spalten hinzufügen.
Warum? Weil in Relationalen DBMS die Daten einer Zeile in einem Block gespeichert werden.  Für die Spalten (ABC) z.b: Hast du mehrere Zeilen steht in deiner DB auf der Festplatte nun z.b (1,1,1)(1,2,3)(2,2,2) u.s.w Fügst du nun D als Spalte ein muss alles im Speicher umgruppiert werden weil die D Spalte über all ans Ende des Tuppels kommt. 

Relationale DBMS sind nicht dafür gedacht/optimiert ständig das DB Schema zu verändern.

Du willst mehr Werte speichern? Wo für gibt es Zeilen?!
Du willst eine Tabelle in der du zu einem Schlüssel Werte speicherst. Für jede Schlüssel-Wert Kombie eine Zeile und keine Spalte für Werte...

Kommentar von GoimgarDE ,

Auf diese Spalte berechnest du deinen Durchschnitt mit einer SQL Abfrage mit Group By auf den Schlüssel.

*Schlüssel meint in diesemfall natürlich nicht Primary Key weil dieser ja eindeutig sein muss sondern einen Fremdschlüssel...

Kommentar von GoimgarDE ,

So noch mal an deinem Beispiel:
Du speicherst natürlich eine Tabelle der Art:

Nr | Monat | Betrag
1 | 0 | 19,12
2 | 0 | 7,44
3 | 1 | 9,0
4 | 1 | 16,01

Nun kannst du einfach mit SQL Abfragen den Durchschnitt Berechnen für gesuchte Monate Berechnen. 

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten