phpbar.de logo

Mailinglisten-Archive

[php] Re: [php/mysql] Harte Nuss - Aggregatfunktionen (Michael Wurz) Stellungnahme

[php] Re: [php/mysql] Harte Nuss - Aggregatfunktionen (Michael Wurz) Stellungnahme

Michael Wurz spammic at gmail.com
Fre Jun 17 13:38:28 CEST 2005


Hallo zusammen,

Ich hoffe, dass ich das mit dem Antworten jetzt überhaupt richtig mache. Wie in der E-Mail gewünscht habe ich den Titel auf einen sinnvollen Wert angepasst. Wie der Bounceserver daraus jetzt nur die neuen Anteile rausfiltert, ist mir ein Rätsel. [Sorry, aber bin ein absoluter Newbie, was Mailinglisten angeht!]. Ist die Vorgehensweise "Reply - Betreff korrigieren - Tippen" generell richtig oder muss ich das anders anpacken?

@raffael: "SELECT * FROM i-was WHERE id = 27840" - Meine Tabelle hat keine ID. Aufgrund der Datenmengen habe ich mir den dafür nötigen Speicherplatz erspart. Ansonsten wäre es auch nicht das, was ich brauche. 

@sebastian: "wie wärs mit zwei Querys?" - Wo liegt dann der Mehrwert? 

@christoph: Meine Tabelle ist schon geindext, :-)

@lutz: Upsi, hatte hier noch von keiner Frau gelesen. Danke für den Hinweis und dickes Sorry an die nicht begrüßten weiblichen 0,1 Prozent! :-) Zum Thema: Ich weiß leider nicht wie groß der gesuchte Wert ist, daher kann ich mit WHERE > nicht noch weiter verfeinern.

@nochmal sebastian: "ich dachte du wolltest vom Ergebnis der Aggregat-Funktion das 4." -- Falls das geht, ist es genau das, was ich suche. Aber die Funktion MAX oder AVG geben doch nur einen Wert zurück oder täusche ich mich? Kann ich damit auch das zweite Maximum auslesen?


Schade, dass die Schweden nicht ein paar der hilfreichen Excelfunktionen abgebildet haben, :-)
In diesem Sinne, ciao
Michael

-----Ursprüngliche Nachricht-----
Von: php-bounces at phpbar.de [mailto:php-bounces at phpbar.de] Im Auftrag von php-request at phpbar.de
Gesendet: Freitag, 17. Juni 2005 12:00
An: php at phpbar.de
Betreff: php Nachrichtensammlung, Band 24, Eintrag 32

Um e-Mails an die Liste php zu schicken, nutzen Sie bitte die Adresse

	php at phpbar.de

Um sich via Web von der Liste zu entfernen oder draufzusetzen:

	http://lists.phpbar.de/mailman/listinfo/php

oder, via Email, schicken Sie eine Email mit dem Wort 'help' in
Subject/Betreff oder im Text an

	php-request at phpbar.de

Sie koennen den Listenverwalter dieser Lister unter der Adresse

	php-owner at phpbar.de

erreichen

Wenn Sie antworten, bitte editieren Sie die Subject/Betreff auf einen
sinnvollen Inhalt der spezifischer ist als "Re: Contents of php
digest..."


** Digest der deutschsprachigen PHP-Mailingliste **
** php::bar - Der Treffpunkt fuer Einsteiger und Profis
** http://www.phpbar.de



Meldungen des Tages:

   1. Re: PHP-Script mit laengerer Laufzeit (Norbert Pfeiffer)
   2. [php/mysql] Harte Nuss - Aggregatfunktionen (Michael Wurz)
   3. Re: [php/mysql] Harte Nuss - Aggregatfunktionen (Raffael Schmid)
   4. Cursor in Eingabefeld setzen (Gernot Küster)
   5. Re:Cursor in Eingabefeld setzen (Andreas Heigl)
   6. Re: [php/mysql] Harte Nuss - Aggregatfunktionen (Sebastian Mendel)
   7. Re:Cursor in Eingabefeld setzen (Andreas Heigl)
   8. RE: [php/mysql] Harte Nuss - Aggregatfunktionen
      (Christoph Kramesch)
   9. Re: [php/mysql] Harte Nuss - Aggregatfunktionen (Lutz Zetzsche)
  10. Re: [php/mysql] Harte Nuss - Aggregatfunktionen (Sebastian Mendel)


----------------------------------------------------------------------

Message: 1
Date: Thu, 16 Jun 2005 16:15:20 +0200
From: "Norbert Pfeiffer" <norbert at itbw.de>
Subject: Re: [php] PHP-Script mit laengerer Laufzeit
To: "deutschsprachige PHP-Mailingliste" <php at phpbar.de>
Message-ID: <008601c5727e$850a07c0$2401a8c0 at npf>
Content-Type: text/plain;	charset="iso-8859-1"

Hi Juergen,

man kann ja auch die Verarbeitung in eine Schleife packen,
welche mit set_time_limit(11); beginnt. Dann iast es egal
ob es eine lange oder kurze Datei ist ...


m. b. G. Norbert
_____________________
normal:  02686-987103
Notruf:  0163-3613642
---------------------
e.o.m.



------------------------------

Message: 2
Date: Fri, 17 Jun 2005 09:43:10 +0200
From: "Michael Wurz" <spammic at gmail.com>
Subject: [php] [php/mysql] Harte Nuss - Aggregatfunktionen
To: <php at phpbar.de>
Message-ID:
	<F942B3C3CA445B44AC8DC3DAA51A80EF13DAD1 at dc-srv.lan>
Content-Type: text/plain;	charset="iso-8859-1"

Guten Morgen Männer,

vielen Dank noch mal für die Hilfe bei meinem letzten Problem mit der Kalenderfunktion. Nun habe ich eine Frage, der ich wirklich einen hohen Schwierigkeitsgrad zuordnen würde. Ich hoffe, dass ihr auch hier ne Idee bekommt. Oder meint ihr, dass die Frage in dbs at phpbar.de besser aufgehoben wäre?


Ihr kennt ja alle die Aggregatfunktionen von Mysql [AVG() , STD() , SUM() , MAX() und MIN()].

Kennt ihr auch die Excel Funktionen KKLEINSTE und KGROESSTE?
KKLEINSTE(B1:B10; 4) liefert beispielsweise aus den Zellen B1 bis B10 den viertkleinsten Wert!

Gibt es für MySQL eine ähnliche Schweinerei unter der Verwendung der Aggregatfunktion?
Ich benutze im Moment noch "ORDER BY kriterium ASC LIMIT $position, 1"! Macht mir aber wenig Freude in Sachen Ladezeiten.
-- Hintergrund ist die Tatsache, dass der derzeit eingesetzte Befehl sehr langsam ist, sobald die Tabelle viele Datensätze enthält. Die Aggregatfunktionen sind ja nahezu instantan. Und die KKLEINSTE und KGROESSTE in Excel sind auch ganz schön fix. Habe deswegen die Hoffnung bekommen, dass man die Lösung auch irgendwie in MySQL abbilden kann.


Zusammenfassende Frage, falls die Erklärung unglücklich war:
Wie würdet ihr in einer Tabelle mit 100.000 Datensätzen, den 27.840. Wert aussuchen ohne mit der oben genannten Select Klausel erst alle Tupel zu sortieren und dann den gesuchten mit einem 1er Limit auszusuchen!?

Viele Grüße
Michael


------------------------------

Message: 3
Date: Fri, 17 Jun 2005 09:55:04 +0200
From: Raffael Schmid <phplist at yux.ch>
Subject: Re: [php] [php/mysql] Harte Nuss - Aggregatfunktionen
To: deutschsprachige PHP-Mailingliste <php at phpbar.de>
Message-ID: <42B281D8.1010708 at yux.ch>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Guten Morgen

>Zusammenfassende Frage, falls die Erklärung unglücklich war:
>Wie würdet ihr in einer Tabelle mit 100.000 Datensätzen, den 27.840. Wert aussuchen ohne mit der oben genannten Select Klausel erst alle Tupel zu sortieren und dann den gesuchten mit einem 1er Limit auszusuchen!?
>
>Viele Grüße
>Michael
>  
>
SELECT * FROM i-was WHERE id = 27840

aber wahrscheinlich habe ich dich falsch verstanden.... da das nicht 
schwierig ist:-)

Gruss

rs


------------------------------

Message: 4
Date: Fri, 17 Jun 2005 10:24:18 +0200
From: Gernot Küster <Gernot.Kuester at softwaresysteme.de>
Subject: [php] Cursor in Eingabefeld setzen
To: <php at phpbar.de>
Message-ID: <001f01c57315$f4e87670$6502a8c0 at pc01>
Content-Type: text/plain;	charset="iso-8859-1"

Hallo,

ich möchte den Cursor in ein Eingabefeld setzen und habe hierzu außer in PHP-GTK keine Funktion gefunden, die dies bewerkstelligt. Ich habe versucht, PHP-GTK zu installieren. Ein Aufruf von PHP in der Command Line war auch erfolgreich. Da ich diese Funktion aber in meiner Server-Anwendung brauche, muss der Funktionsaufruf auch im Browser funktionieren. Hier bekomme ich aber die Fehlernachricht

Fatal error: php-gtk: PHP GTK+ support is not available under Web servers in d:\programme\apache\htdocs\test_gtk\hello.php on line 5

Hierzu line 4 und 5 im Programm:

if (!extension_loaded('gtk')) {
 dl( 'php_gtk.' . PHP_SHLIB_SUFFIX);

Ich habe sicher gestellt, dass die DLL im richtigen Verzeichnis steht und vorsichtshalber in meiner PHP.INI die Eintragung extension=php_gd2.dll aktiviert. Leider ohne Erfolg!

Mit freundlichen Grüßen,
Gernot Küster


------------------------------

Message: 5
Date: Fri, 17 Jun 2005 10:27:33 +0200
From: Andreas Heigl <a.heigl at wdv.de>
Subject: Re:[php] Cursor in Eingabefeld setzen
To: PHP Liste <php at phpbar.de>
Message-ID: <BED85615.45C1%a.heigl at wdv.de>
Content-Type: text/plain;	charset="ISO-8859-1"

Gernot Küster schrieb:

> Hallo,
> 
> ich möchte den Cursor in ein Eingabefeld setzen und habe hierzu außer in
> PHP-GTK keine Funktion gefunden, die dies bewerkstelligt.
Da wirst du in PHP auch keine Funktion finden, die das im WebBrowser
bewerkstelligt, da PHP serverseitig läuft.

Das was du suchst ist die Javascript-Funktion
document.forms[0].eingabefeld.focus();

Grüße

Andreas
-- 

wdv Medien & Kommunikation GmbH & Co. OHG
Mediendatenverarbeitung
Andreas Heigl
Siemensstrasse 6
61352 Bad Homburg
Germany
Telefon +49-(0)6172-670-185
Telefax +49-(0)6172-670-181
www.wdv.de




------------------------------

Message: 6
Date: Fri, 17 Jun 2005 10:46:35 +0200
From: Sebastian Mendel <lists at sebastianmendel.de>
Subject: Re: [php] [php/mysql] Harte Nuss - Aggregatfunktionen
To: deutschsprachige PHP-Mailingliste <php at phpbar.de>
Message-ID: <42B28DEB.6000401 at sebastianmendel.de>
Content-Type: text/plain; charset=ISO-8859-1

Michael Wurz wrote:

> Ich benutze im Moment noch "ORDER BY kriterium ASC LIMIT $position, 1"! Macht mir aber wenig Freude in Sachen Ladezeiten.

wie wärs mit zwei Querys?

erst eines Welches das Ergebnis der Aggregatfuntion speichert (in einem
Feld in der selben Tabelle, mit index) oder in einer temp. Tabelle

Und dann erst dein ... ORDER BY ... LIMIT ...


-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet


------------------------------

Message: 7
Date: Fri, 17 Jun 2005 10:37:06 +0200
From: Andreas Heigl <a.heigl at wdv.de>
Subject: Re:[php] Cursor in Eingabefeld setzen
To: PHP Liste <php at phpbar.de>
Message-ID: <BED85852.45C4%a.heigl at wdv.de>
Content-Type: text/plain;	charset="ISO-8859-1"

Andreas Heigl schrieb:

> Gernot Küster schrieb:
> 
>> Hallo,
>> 
>> ich möchte den Cursor in ein Eingabefeld setzen und habe hierzu außer in
>> PHP-GTK keine Funktion gefunden, die dies bewerkstelligt.
> Da wirst du in PHP auch keine Funktion finden, die das im WebBrowser
> bewerkstelligt, da PHP serverseitig läuft.
> 
> Das was du suchst ist die Javascript-Funktion
> document.forms[0].eingabefeld.focus();
Siehe z.B. hier: 
http://de.selfhtml.org/javascript/objekte/elements.htm#focus

Grüße

Andreas
-- 

wdv Medien & Kommunikation GmbH & Co. OHG
Mediendatenverarbeitung
Andreas Heigl
Siemensstrasse 6
61352 Bad Homburg
Germany
Telefon +49-(0)6172-670-185
Telefax +49-(0)6172-670-181
www.wdv.de




------------------------------

Message: 8
Date: Fri, 17 Jun 2005 10:36:16 +0200
From: "Christoph Kramesch" <christoph at kramesch.com>
Subject: RE: [php] [php/mysql] Harte Nuss - Aggregatfunktionen
To: "deutschsprachige PHP-Mailingliste" <php at phpbar.de>
Message-ID: <NGBBJAEENBBEKOJMLNMMKEIEFGAA.christoph at kramesch.com>
Content-Type: text/plain;	charset="iso-8859-1"

> Gibt es für MySQL eine ähnliche Schweinerei unter der
> Verwendung der Aggregatfunktion?
> Ich benutze im Moment noch "ORDER BY kriterium ASC LIMIT
> $position, 1"! Macht mir aber wenig Freude in Sachen Ladezeiten.

Die Ladezeiten kannst du wahrscheinlich drastisch vermindern, wenn du
auf das Feld 'kriterium' einen in mysql einmalig einen Index mittels
'ALTER TABLE tablename ADD INDEX ( kategorie );' legst. Das beschleunigt
große sortierte Abfragen ungemein!

Hdh,
Chrstoph



------------------------------

Message: 9
Date: Fri, 17 Jun 2005 11:26:12 +0200 (CEST)
From: "Lutz Zetzsche" <Lutz.Zetzsche at sea-rescue.de>
Subject: Re: [php] [php/mysql] Harte Nuss - Aggregatfunktionen
To: "deutschsprachige PHP-Mailingliste" <php at phpbar.de>
Message-ID:
	<37191.195.125.155.121.1119000372.squirrel at mail.open-medium.com>
Content-Type: text/plain;charset=iso-8859-1

Hi Michael,

Michael Wurz schrieb:
> Guten Morgen Männer,

es gibt hier auch Frauen auf der Liste (genauso wie bei der Bundeswehr)...
*scnr* ;-)


> Kennt ihr auch die Excel Funktionen KKLEINSTE und KGROESSTE?
> KKLEINSTE(B1:B10; 4) liefert beispielsweise aus den Zellen B1 bis B10 den
> viertkleinsten Wert!
>
> Gibt es für MySQL eine ähnliche Schweinerei unter der Verwendung der
> Aggregatfunktion?

Ich habe mir gerade noch einmal die Funktionen durchgesehen, habe aber
auch nichts Entsprechendes gefunden.


> Ich benutze im Moment noch "ORDER BY kriterium ASC LIMIT $position, 1"!
> Macht mir aber wenig Freude in Sachen Ladezeiten.
> -- Hintergrund ist die Tatsache, dass der derzeit eingesetzte Befehl sehr
> langsam ist, sobald die Tabelle viele Datensätze enthält.

Ich kenne Deine Tabelle und den SQL-Befehl leider nicht, aber wenn Du nur
die eine Spalte, um die es geht, mit DISTINCT durchsuchst und auf diese
Spalte einen Index legst, könnte die Abfrage schnell werden:

  SELECT DISTINCT kriterium FROM tabelle ORDER BY kriterium ASC LIMIT 3, 1

Noch schneller könntest Du werden, wenn Du einen ungefähren Anhaltspunkt
hast, wie groß "kriterium" mindestens sein muß. Dann könntest Du noch ein

   WHERE kriterium > x

ergänzen.


Viele Grüße

Lutz



------------------------------

Message: 10
Date: Fri, 17 Jun 2005 11:43:39 +0200
From: Sebastian Mendel <lists at sebastianmendel.de>
Subject: Re: [php] [php/mysql] Harte Nuss - Aggregatfunktionen
To: deutschsprachige PHP-Mailingliste <php at phpbar.de>
Message-ID: <42B29B4B.5050401 at sebastianmendel.de>
Content-Type: text/plain; charset=ISO-8859-1

Sebastian Mendel wrote:
> Michael Wurz wrote:
> 
>> Ich benutze im Moment noch "ORDER BY kriterium ASC LIMIT $position, 1"! Macht mir aber wenig Freude in Sachen Ladezeiten.
> 
> wie wärs mit zwei Querys?
> 
> erst eines Welches das Ergebnis der Aggregatfuntion speichert (in einem
> Feld in der selben Tabelle, mit index) oder in einer temp. Tabelle
> 
> Und dann erst dein ... ORDER BY ... LIMIT ...

mhm, naja nee, ich dachte du wolltest vom Eegebnis der Aggregat-Funktion
das 4. ... aber wohl doch nicht


-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet


------------------------------

-- 
php mailing list
php at phpbar.de
http://lists.phpbar.de/mailman/listinfo/php


Ende php Nachrichtensammlung, Band 24, Eintrag 32
*************************************************




php::bar PHP Wiki   -   Listenarchive