Abfrage nach Wochentag?

Abfrage nach Wochentag?

am 08.05.2006 21:21:19 von Sebastian Suchanek

Hallo NG!

Ich habe hier eine Menge MySQL-Datensätze, die u.a. ein
"Datetime"-Feld enthalten. (über 46.000 und aus den letzten
3,5a).
Kann man eine Abfrage basteln, mit der ich die Datensätze eines
Wochentages (also alle Daten von Montagen, Sonntagen...)
liefern? (Und die bei den gegebenen Datenmengen auch noch
*halbwegs* performant ist?)
Wenn ja, wie?


TIA,

Sebastian

--
http://www.baumaschinen-modelle.net
http://www.schwerlast-rhein-main.de

Re: Abfrage nach Wochentag?

am 08.05.2006 21:38:55 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Abfrage nach Wochentag?

am 08.05.2006 22:49:01 von Matthias Esken

On Mon, 8 May 2006 21:38:55 +0200, Andreas Kretschmer wrote:

> Bestymmt. Die Lösung in PG wäre 'where extract(dow from )
> = X'
>
> [...]
>
> Mit einem funktionalem Index? Die Lösung für PG ware:

Aus http://de.wikipedia.org/wiki/PG:

| PG ist eine Abkürzung und steht für:
|
| * Papua-Neuguinea, nach ISO 3166
| * parental guidance suggested, das ist eine Einstufung der Motion
| Picture Association of America, die Filme bewertet und anschließend
| entscheidet, für welche Ziel- und Altersgruppe sich der jeweilige Film
| eignet. Die Einstufung PG empfiehlt eine Begutachtung oder Begleitung durch
| ein Elternteil oder einen Erwachsenen.
| * Panzerrohrgewinde, ein altes Maß in der Elektroinstallation. Es
| kennzeichnete Rohre und Gewinde, die PG-Rohre und PG-Gewinde, sowie
| PG-Verschraubungen.
| * Professional Gamer oder Pro-Gamer, damit meint man in der
| Computerspieleszene jemand, der sich durch Computerspiele Geld verdient
| (zum Beispiel Teilnahme an Turnieren, Sponsoren). Ein anderer Ausdruck für
| PG ist fr0g.
| * Powergamer, das ist in der Rollenspielszene ein Spieler, der seine
| Figur optimal generiert und konstruiert, alle Vorteile für sich reklamiert
| und keinerlei Nachteile in Kauf nehmen möchte.
| * Polizeigewahrsam
| * Procter & Gamble, einem großen Konsumgüterkonzern
| * Point Guard, eine Position im Basketball
| * Parteigenosse, ein Mitglied der NSDAP
| * den ersten und niedrigsten Soldaten-Dienstgrad in der Bundeswehr bei
| den Panzergrenadieren
| * Pech gehabt

Was auch immer du davon meintest: es passt alles nicht. Nichts davon hat
mit MySQL zu tun.

Gruß,
Matthias

Re: Abfrage nach Wochentag?

am 08.05.2006 23:08:13 von Hartmut Holzgraefe

Andreas Kretschmer wrote:
>> Kann man eine Abfrage basteln, mit der ich die Datensätze eines=20
>> Wochentages (also alle Daten von Montagen, Sonntagen...)=20
>=20
> Bestymmt. Die Lösung in PG wäre 'where extract(dow from lte>)
> =3D X'
>=20
> (mit X in (0..6) für die Wochentage)

EXTRACT(...) ist zwar eine ANSI-Funktion, der DOW Parameter für den
Wochentag ist aber eine PostgreSQL-spezifische (oder zumindest nicht-ANSI=
)
Erweiterung (oder hat da nach SQL-99 noch mal jemand dran gedreht?)

Von daher dürfte es nicht schlimm sein das MySQL hier zur Zeit einen
anderen nicht-ANSI Weg geht:

WHERE DAYOFWEEK() =3D X

/* mit X=3D1 für Sonntag bis X=3D7 für Samstag (bedankt euch bei O=
DBC
für diese Zählweise) */

Außerdem habe ich das dumpfe Gefühl das hier eher ein

GROUP BY DAYOFWEEK(...)

oder

GROUP BY DAYNAME(...)

gefragt war?


>> liefern? (Und die bei den gegebenen Datenmengen auch noch=20
>> *halbwegs* performant ist?)
>> Wenn ja, wie?
>=20
> Mit einem funktionalem Index? Die Lösung für PG ware:
> create index on (extract(dow from =
));

da muss MySQL bisher leider tatsächlich passen, hier müsste
ein zusätzliches Tabellenfeöd für den Wochentag mitgeführt
und getrennt indiziert werden (was sich zumindest ab 5.0
durch entsprechende Trigger automatisieren lässt)

> Btw.: Das ist keine nachdenkenswerte Tabellengröße. Nicht einmal fü=
r
> MySQL.

Fullack, 36k rows sind nichts wirklich besonderes, und da es sich ja
anscheinen um eine Reporting-Anwendung handelt wird Performance auch
nicht sooooo superkritisch sein.


--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

http://www.mysql.com/support/

Re: Abfrage nach Wochentag?

am 09.05.2006 07:03:29 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Abfrage nach Wochentag?

am 09.05.2006 09:39:15 von Mike Lischke

Andreas Kretschmer wrote

>Was auch immer Du geraucht hast: Dein Durchfall hier hat nix mit der
>Frage zu tun.

Deine Antworten aber auch nicht. Noch dazu wirst du beleidigend, wenn dir
jemand den Spiegel vorhält. Diese Gruppe ist dazu da, MySQL Fragen zu
beantworten, nicht solche für PostgreSQL. Wenn du keine MySQL spezifische
Antwort weißt, dann sei einfach nur still und lerne. Wenn du gar nicht an
MySQL interessiert bist, dann lassen wir dich gern gehen. Tschüss.

Mike
--
Mike Lischke, Software Engineer GUI
MySQL AB, www.mysql.com

Re: Abfrage nach Wochentag?

am 09.05.2006 12:35:20 von frank paulsen

Matthias Esken writes:

> On Mon, 8 May 2006 21:38:55 +0200, Andreas Kretschmer wrote:
>
>> Bestymmt. Die Lösung in PG wäre 'where extract(dow from )
>> = X'
>>
>> [...]
>>
>> Mit einem funktionalem Index? Die Lösung für PG ware:
>
> Aus http://de.wikipedia.org/wiki/PG:
>

[...]

> Was auch immer du davon meintest: es passt alles nicht. Nichts davon hat
> mit MySQL zu tun.

er meinte sicherlich PerformanceGrave, eine SQL-datenbank, die sich
nicht so recht durchsetzen kann.

--
frobnicate foo

Re: Abfrage nach Wochentag?

am 10.05.2006 14:43:30 von Andreas Scherbaum

Matthias Esken wrote:
> On Mon, 8 May 2006 21:38:55 +0200, Andreas Kretschmer wrote:
>
>> Mit einem funktionalem Index? Die Lösung für PG ware:
>
> Aus http://de.wikipedia.org/wiki/PG:

Wikipedia hat natürlich auch immer Recht und kann für sich in
Anspruch nehmen, allwissend zu sein.

Was mag ich Leute, die so etwas als Beweis hervorzaubern ...


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Abfrage nach Wochentag?

am 10.05.2006 15:16:32 von Hartmut Holzgraefe

Andreas Scherbaum wrote:
>>> Mit einem funktionalem Index? Die Lösung für PG ware:
>> Aus http://de.wikipedia.org/wiki/PG:
>=20
> Wikipedia hat natürlich auch immer Recht und kann für sich in
> Anspruch nehmen, allwissend zu sein.
>=20
> Was mag ich Leute, die so etwas als Beweis hervorzaubern ...

Es ging whol eher darum das PG allein keine sooo gängige Abkürzung is=
t.

Ohne den Kontext "Wer ist der Absender" wäre ich vermutlich auch erst
nach etwas Grübeln auf die richtige Antwort gekommen.


--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

http://www.mysql.com/support/

Re: Abfrage nach Wochentag?

am 10.05.2006 22:29:57 von Sebastian Suchanek

Hartmut Holzgraefe spoke thusly:

> [...]
> WHERE DAYOFWEEK() = X
> [...]

Danke dafür. :-)

> Außerdem habe ich das dumpfe Gefühl das hier eher ein
>
> GROUP BY DAYOFWEEK(...)
>
> oder
>
> GROUP BY DAYNAME(...)
>
> gefragt war?
> [...]

Nachdem ich gerade festgestellt habe, daß MySQL auch AVG() und
STD() bietet, war genau das gefragt. :-)


Tschüs,

Sebastian

--
http://www.baumaschinen-modelle.net
http://www.schwerlast-rhein-main.de