kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden
Hallo zusammen
ich habe eine Tabelle, in der stehen Anrufdaten eines Telefonservers drinnen (Asterisk): ua Anruf-Beginn und Länge. Ziel ist es, die maximale Anzahl der gleichzeitigen Anrufer herauszufinden. (also über alle Einträge) Meine Idee: Man kann mit anruf-begin+länge das ende bekommen, hätte also Beginn und Ende jedes Anrufes und könnte jetzt schauen wieviele anrufe zu einem bestimmten Zeitpunkt gleichzeitig waren, und davon irgendwie das >Maximum bekommen. Jetzt stellt sich für mich nur die Problematische Frage: Wie bekomme ich das Maximum über alle Einträge, also die jemals gleichzeitig aktiven Anrufe. Ich hoffe ich habe das Problem deutlich geschilder und ihr könnt mir helfen! VIele Grüße und Dank, Kai |
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden
Hallo kai4711 und herzlich Willkommen im Forum.
Mit Deiner Erklärung alleine können wir hier nur einen smaltalk abhalten. Um die Sache anzugehen, ist es schon erforderlich etwas von Deinem Tabellenaufbau zu wissen und evtl. Deine Ansätze der DB-Abfrage als Query zu sehen. Grüße, franzx |
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinde
src | calldate | duration
wobei calldate datetime ist und duration second ich habe jetzt mal testweise das hier gemacht um testweise den Endtimestamd zu erzeugen und die Abfrage nur in einem Intervall stattfinden zu lassen. PHP-Code:
Eine Möglichkeit wäre, eine Schleife drumherum zu setzten und bspw. alle vollen Minuten im Intervall zu checken und zu schauen, wieviele dort parallel waren und davon dann das Maximum zu nehmen. Das wäre aber nicht besonders genau (weil wir ja sekundenbasiert sind) und so wie ich mysql kenne geht das auch eleganter. Ich weiss nur leider noch nicht wie! Viele Grüße Kai |
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden
Moin, moin,
für die Zeitberechnung würde ich die Zeit erstmal ins unixformat bringen! PHP-Code:
Vielleicht war dies ja schon der nötige Hinweis, muss aber eben auf ne Besprechung, bin ab frühen Nachmittag wieder da. Grüße, Franzx |
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden
Hey Franzx,
danke für deinen Hinweis, das bringt mich aber nicht entscheidend weiter. Ich denke es muss irgendwas mit Subquerys und max() werden, aber ich habe keine Idee wie ich das angehen will. Momentan habe ich ja nur die Zeilen mit Anfang/Ende und sonst nichts. Was ja gesucht ist ist das Maximum aller "gleichzeitigen Zeilen"... Grüße Kai |
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden
Ja, ja, ich hatte Dich schon richtig verstanden. Habe dies bslang auch noch nicht gemacht. Will mal versuchen diese gesamte Anforderung aufzudröseln!
1. Rechne ich alle Werte in UNIXZEIT um, also in Sekunden, für von und für bis, erhalte ich eine Zeitspanne. 2. Vergleiche ich diese Zeitspanne mit den Zeitspannen von den anderen Datensätzen, mit PHP-Code:
3. Zähle die zutreffenden Datensätze, die beim jeweiligen Vergleich rauskommen und die größte Zahl ist das gewünschte Ergebnis. PHP-Code:
|
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden
Genau, so hätte ich das auch gemacht (zB in PHP) aber: ich möchte möglichst viel auf MySQL-Seite machen.
In PHP müsste ich ja im extremfall für jede zu checkende Sekunde (oder man könnte auch nur jede Minute überprüfen) die gleichzeitige Anzahl auslesen und dann den grösten nehmen. Wenn ich jetzt den SPaß auf einen Zeitraum von zb 3 Monaten anwende komme ich mal ganz schnell auf einige Zehntausend sql-Abfragen dafür. Gibt es keine Möglichkeit da mehr mit sql zu machen? Grüße Kai |
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden
Zitat:
da hast Du sicherlich recht und die Datenbank hätte mehr als gut zu tun. Um die Anforderung in MySql zu erledigen, wollen wir mal hoffen, dass hier noch ein fortgeschrittener MySQL-User rein schaut und einen Tipp hat. Ich habe da keine weitere Anregung mehr zu! Grüße und viel Erfolg, Franz |
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:07:30 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.