Datanbank Inhalt auswerten

schalex

Neuer Benutzer
Beiträge
3
Hallo liebe Leute.

Ich mache gerade meinen ersten Schritte mit Mariadb und habe schon daten in meiner Tabelle stehen.
Nun hat diese Tabelle nur eine Spalte und 40 Zeilen.
Ich würde nun gerne über alle Zeilen gehen und hätte als Ergebnis gerne das häufigste Wort, zweithäufigste, ...
Dies sollte kontinuierlich passieren. Das heißt immer wenn eine neue Zeile erstellt wird sollte diese Prozedur laufen und schauen wie jetzt die Verteilung ist.

Geht so etwas direkt in der Datenbank?
Ich arbeite mit Python und dem import MySQLdb.

Ich danke jedem der sich Zeitgenommen hat um die Frage zu lesen und noch mehr jedem der dazu eine idee hat.

Grüße Alex
 
Werbung:
Hallo akretschmer,

vielen Dank für die schnelle Antwort.
Ich habe den SQL-Befehl ausgefüht.
Ich habe vergessen zu sagen, in der Spalte "text" sind einzelne oder mehrere Sätze.
Ich möchte nun von allem inhalt in allen spalten Text die häufigsten Worte.

Deine Rückmeldung würde perfekt funktionieren wenn ich nur worte in dieser Spalte habe oder?
Ich habe es nämlich ausgeführt und es steht überall nur 1 da natürlich jeder satz nur 1x genau so vorkommt.

Ich habe hier etwas gefunden: Getting most used words from a column of strings in SQL

Das ergebnis genau so wäre perfekt:
Item
-------- -------
to 3812411
in 3331522
a 2543636
How 1770915
the 1534298
with 1341632
of 1297468
.....

Aber ich bin echt neu in der Matherie, daher weiß ich nicht ob das überhaupt richtig zu dem thema passt.

Grüße Alex
 
Zuletzt bearbeitet:
Code:
andreas@[local]:5432/test*# select * from schalex ;
  t   
----------------------------------------
 das ist zeile 1
 das ist noch eine zeile nun die zweite
 eine dritte zeile hab ich auch noch
 und noch eine
(4 rows)

andreas@[local]:5432/test*# select word, count(1) from (select regexp_split_to_table(string_agg(t,' '),E'\\s+') as word from schalex) words group by word order by count(1) desc ;
  word  | count
--------+-------
 noch  |  3
 eine  |  3
 zeile  |  3
 ist  |  2
 das  |  2
 ich  |  1
 zweite |  1
 und  |  1
 1  |  1
 die  |  1
 nun  |  1
 auch  |  1
 dritte |  1
 hab  |  1
(14 rows)

andreas@[local]:5432/test*#

Achtung: ist mit PostgreSQL gemacht, Syntax in MySQL dürfte anders sein, sofern es das überhaupt kann.
 
Das sieht perfekt aus.
Genau das Versuche ich gerade.
Habe einmal versucht deinen PostgreSQL code yu verstehen und yu schauen ob ich in für SQL mit MariaDB hinbekomme aber erfolglos.
Hat jemand eine idee?
Wenn nicht überlege ich ob ich mit python über die Datenbank gehe und versuche die Daten auszuwerten.

Grüße Alex
 
Werbung:
Also ich bin mir sicher das es mit MySQL nicht geht und mit Postgres MSSQL und Oracle läuft. MariaDB ist eigentlich näher an MySQL, gut möglich das es nicht geht.
 
Zurück
Oben