CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |

06.04.2008, 20:33:43
|
Anfänger
|
|
Registriert seit: Apr 2008
Beiträge: 4
|
|
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
|

06.04.2008, 21:36:46
|
Junior Member
|
|
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
|
|
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
__________________
Für die richtige Frage gibt's die richtige Antwort!
|

07.04.2008, 06:33:21
|
Anfänger
|
|
Registriert seit: Apr 2008
Beiträge: 4
|
|
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:
SELECT src AS nummer,calldate AS beginn,DATE_ADD(calldate,INTERVAL billsec second) AS ende FROM telefon_log WHERE calldate > '2008-04-1 00:00:00' AND DATE_ADD(calldate,INTERVAL billsec second) < '2008-04-01 23:59:59';
Ich möchte aus diesen Daten jetzt die maximalen gleichzeitig stattfindenden Zeilen herausbekommen.
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
|

07.04.2008, 08:18:41
|
Junior Member
|
|
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
|
|
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:
UNIX_TIMESTAMP(calldate) AS ende ...
in diesem Format kann auch gerechnet werden.
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
__________________
Für die richtige Frage gibt's die richtige Antwort!
|

07.04.2008, 12:32:51
|
Anfänger
|
|
Registriert seit: Apr 2008
Beiträge: 4
|
|
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
|

07.04.2008, 13:25:09
|
Junior Member
|
|
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
|
|
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:
>= von and <= bis
Mal abgesehen von der UNIX-Time, wird in Deinem zweiten Post ja bereits im Quere so dargestellt.
3. Zähle die zutreffenden Datensätze, die beim jeweiligen Vergleich rauskommen und die größte Zahl ist das gewünschte Ergebnis.
PHP-Code:
$mostgleich = 0;
$result = mysql_query(Select ....
$zaehler = 0;
while($row = mysql_fetch_array($result))
{
$zaehler++;
if ($mostgleich < $zaehler)
{
$mostgleich = $zaehler;
}
}
...
übersehe ich etwas?
Grüße, Franzx
__________________
Für die richtige Frage gibt's die richtige Antwort!
Geändert von Franzx (07.04.2008 um 13:29:33 Uhr)
|

07.04.2008, 13:29:23
|
Anfänger
|
|
Registriert seit: Apr 2008
Beiträge: 4
|
|
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
|

07.04.2008, 13:39:31
|
Junior Member
|
|
Registriert seit: Nov 2005
Ort: Bremen
Beiträge: 437
|
|
AW: kompliziertes SQL-Query: aus Begin/Ende maximale gleichzeitige Events herausfinden
Zitat:
Zitat von kai4711
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
|
Hallo Kai,
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
__________________
Für die richtige Frage gibt's die richtige Antwort!
Geändert von Franzx (07.04.2008 um 21:12:44 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:05:07 Uhr.
|