count()

count()

am 10.12.2006 18:17:04 von QDL

Kann es sein, dass die Funktion count in mysql nicht ohne Parameter
aufgerufen werden kann?

Beispiel:

----schnippel---
mysql> select count() from personen;
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near ') from personen' at line 1
mysql> SELECT count(name) FROM `personen`;
+-------------+
| count(name) |
+-------------+
| 4 |
+-------------+
1 row in set (0.03 sec)

mysql>
---dischnapp---

Ich habe in Online-Turorien auch count() gefunden.

hs

Re: count()

am 10.12.2006 18:45:25 von Heiko Richler

Hallo Holger,

Holger Schulz wrote:
> Kann es sein, dass die Funktion count in mysql nicht ohne Parameter
> aufgerufen werden kann?

ich kenne es nicht ohne Parameter, und die Doku sieht auch nicht danach
aus. Zuweilen werden hinter die Bezeichner von Funktionen noch Klammern
gesetzt um klar zu stellen, dass es eine Funktion sein soll. Eventuell
war das mit count() gemeint?

http://dev.mysql.com/doc/refman/5.1/de/group-by-functions.ht ml#id3028687

Gruß

Heiko
--
http://portal.richler.de/ Namensportal zu Richler
http://www.richler.de/ Heiko Richler: Computer - Know How!
http://www.richler.info/ private Homepage

Re: count()

am 10.12.2006 19:55:14 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: count()

am 10.12.2006 20:22:56 von Andreas Scherbaum

Holger Schulz wrote:
> Kann es sein, dass die Funktion count in mysql nicht ohne Parameter
> aufgerufen werden kann?

Die Funktion weiss nicht, was sie zählen soll, also was soll sie dir
zurückliefern ausser einem Fehler?


> Ich habe in Online-Turorien auch count() gefunden.

Da wird man sich die Angabe der Spalte(n), die gezählt werden sollen,
schlicht erspart haben. Das Tutorial ist schliesslich auch gleichzeitig
eine Übung für den geneigten Leser ...


Bye

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

Re: count()

am 10.12.2006 21:27:51 von Claus Reibenstein

Holger Schulz schrieb:

> Kann es sein, dass die Funktion count in mysql nicht ohne Parameter
> aufgerufen werden kann?

Ja.

> Ich habe in Online-Turorien auch count() gefunden.

In welchem Tutorial? In welchem Zusammenhang? Hast Du mal einen Link?

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: count()

am 10.12.2006 22:36:15 von Andreas Labres

count(*)

Servus, Andreas

Re: count()

am 11.12.2006 18:59:02 von QDL

Andreas Kretschmer wrote:

> Kann es sein, daß Du nicht verstanden hast, daß man einer Funktion, die
> etwas zählen soll, auch sagen muß, was sie zu zählen hat?

_Kann_ sein, ist aber nicht der Fall.

hs

Re: count()

am 11.12.2006 18:59:02 von QDL

Andreas Scherbaum wrote:

> Die Funktion weiss nicht, was sie zählen soll,

Wie wäre es mit den Zeilen in der Tabelle?

> also was soll sie dir
> zurückliefern ausser einem Fehler?

s.o.

hs




>
>
> > Ich habe in Online-Turorien auch count() gefunden.
>
> Da wird man sich die Angabe der Spalte(n), die gezählt werden sollen,
> schlicht erspart haben. Das Tutorial ist schliesslich auch gleichzeitig
> eine Übung für den geneigten Leser ...

Re: count()

am 11.12.2006 18:59:02 von QDL

Claus Reibenstein <4spammersonly@web.de> wrote:

> In welchem Tutorial? In welchem Zusammenhang? Hast Du mal einen Link?

GalaXQL

http://sol.gfxile.net/galaxql.html

Dort wird count parameterlos verwendet.

hs

Re: count()

am 11.12.2006 22:53:44 von Claus Reibenstein

Holger Schulz schrieb:

> Claus Reibenstein <4spammersonly@web.de> wrote:
>
>> In welchem Tutorial? In welchem Zusammenhang? Hast Du mal einen Link?
>
> GalaXQL
>
> http://sol.gfxile.net/galaxql.html

Sorry, aber das ist kein Tutorial, sondern eine nett gemachte Spielerei,
die sich noch dazu explizit auf SQLite bezieht.

> Dort wird count parameterlos verwendet.

An genau einer Stelle.

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: count()

am 12.12.2006 07:23:04 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: count()

am 12.12.2006 07:27:06 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: count()

am 12.12.2006 08:53:13 von spam

Holger Schulz wrote:

> Kann es sein, dass die Funktion count in mysql nicht ohne Parameter
> aufgerufen werden kann?

> mysql> SELECT count(name) FROM `personen`;

Das auch. Also count(*) zählt alle Datensätze der Ergebnismenge (du
könntest ja noch mit where ... eingrenzen).

Bei Angabe eines Feldnamens count(fax) werden all die Datensätze
gezählt, bei denen das entsprechende Feld nich null (leer) ist. Wenn
z.B. in einer Adressdatenbank nur ein Teil der Leute ein Fax hat.

Aber nun meine Frage: wieso steht der Tabellenname in deinem Beispiel in
Hochkommas? Ich hätte eher gedacht, das dass eine Fehlermeldung bringt
.... ?

Frank

Re: count()

am 12.12.2006 09:25:34 von Heiko Richler

Hallo Frank,

> Aber nun meine Frage: wieso steht der Tabellenname in deinem Beispiel in
> Hochkommas? Ich hätte eher gedacht, das dass eine Fehlermeldung bringt
> ... ?

vgl. Frage "Backticks" von Holger Schulz, ebenfalls vom 10.12.

Gruß

Heiko
--
http://portal.richler.de/ Namensportal zu Richler
http://www.richler.de/ Heiko Richler: Computer - Know How!
http://www.richler.info/ private Homepage

Re: count()

am 12.12.2006 09:51:51 von Claus Reibenstein

Frank Esselbach schrieb:

> Holger Schulz wrote:
>
>> mysql> SELECT count(name) FROM `personen`;
>
> wieso steht der Tabellenname in deinem Beispiel in Hochkommas?

Das sind keine Hochkommas. Schau mal genau hin.

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: count()

am 13.12.2006 21:28:50 von schulz.uni-siegen

Andreas Kretschmer wrote:

> Ah ja, und du bist tatsächlich der Meinung, weil _DORT_ im Table of
> Contents COUNT() neben AVG(), SUM() und anderen Aggregatfunktionen
> steht, ist dies die korrekte Syntax bei dessen Anwendung?

Nein.

hs

Re: count()

am 13.12.2006 21:28:51 von schulz.uni-siegen

Claus Reibenstein <4spammersonly@web.de> wrote:

> die sich noch dazu explizit auf SQLite bezieht.

Eben, deshalb ja meine Frage, ob sich das bei mysql anders verhält.
Diese ist übrigens hinreichend beantwortet. Danke.

> > Dort wird count parameterlos verwendet.

> An genau einer Stelle.

Stimmt. Es muss mindestens an zwei Stellen verwendet worden sein, bevor
man sich dazu Gedanken macht.

hs

Re: count()

am 13.12.2006 21:28:51 von schulz.uni-siegen

Andreas Labres wrote:

> count(*)

Hört sich gut an.

Danke.

hs

Re: count()

am 13.12.2006 21:28:51 von schulz.uni-siegen

Andreas Kretschmer wrote:

> begin Holger Schulz schrieb:
> > Andreas Scherbaum wrote:
> >
> >> Die Funktion weiss nicht, was sie zählen soll,
> >
> > Wie wäre es mit den Zeilen in der Tabelle?
>
> Welche Tabelle bei 'select count(1);'

Zur Not würde ich mich dazu herablassen, ein FROM zu verwenden und die
Tabelle zu explizieren, so wie ich das auch mit Parameter machen müsste,
wenn sich eben dieser auf eine Tabelle bezieht.

Die Anfrage

select count(1)

sieht mir dagegen nicht danach aus, das sie sich auf eine Tabelle
bezieht. Dafür hat sie aber einen Parameter.

> Noch mal zum mitmeiseln:
>
> Count ist eine Funktion, die mit Parameter definiert ist.

Wo ist es denn definiert? Im SQL-Standard oder explizit für mysql? Die
feinen Unterschiede zwischen verschiedenen SQL-Implementationen finde
ich schon spannend.

> Es
> ohne
> Parameter aufzurufen ist in etwa gleich debil wie sqrt().

Guter Vergleich. Hut ab.

Ich lasse mich ja gerne davon überzeugen, dass es in mysql keine
Funktionen mit optionalen Parametern gibt (wenn es denn so ist). Das ich
bisher etwas anderes vermutet habe, sollte auf jeden Fall mit einer
unsachlichen Bemerkung kommentiert werden, wenn einem nichts Besseres
einfällt.

hs

Re: count()

am 13.12.2006 21:53:24 von Claus Reibenstein

Holger Schulz schrieb:

> Claus Reibenstein <4spammersonly@web.de> wrote:
>
>>> Dort wird count parameterlos verwendet.
>
>> An genau einer Stelle.
>
> Stimmt. Es muss mindestens an zwei Stellen verwendet worden sein, bevor
> man sich dazu Gedanken macht.

Geht's Dir irgendwie nicht gut?

Du hast in Deinem ursprünglichen Posting von "Online-Tutorien"
(Mehrzahl!) gesprochen. Auf meine Nachfrage hast Du genau _ein_ Tutorial
genannt, und in diesem Tutorial wird count() an genau _einer_ Stelle
ohne Argument aufgerufen. Darauf habe ich hingewiesen.

Wenn Dir solche Antworten nicht schmecken, solltest Du einfach gar nicht
erst fragen!

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: count()

am 13.12.2006 22:51:28 von Andreas Scherbaum

Holger Schulz wrote:
> Andreas Kretschmer wrote:
>
>> begin Holger Schulz schrieb:
>> > Andreas Scherbaum wrote:
>> >
>> >> Die Funktion weiss nicht, was sie zählen soll,
>> >
>> > Wie wäre es mit den Zeilen in der Tabelle?
>>
>> Welche Tabelle bei 'select count(1);'
>
> Zur Not würde ich mich dazu herablassen, ein FROM zu verwenden und die
> Tabelle zu explizieren, so wie ich das auch mit Parameter machen müsste,
> wenn sich eben dieser auf eine Tabelle bezieht.

Interessant ist aber, dass das Ergebnis von count(1) dann 0 ist.
Wenn ich einen Wert zähle, würde ich irgendwie auch 1 als Ergebnis erwarten.


> Ich lasse mich ja gerne davon überzeugen, dass es in mysql keine
> Funktionen mit optionalen Parametern gibt (wenn es denn so ist).

Gegenbeweis: select version();


Bye

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

Re: count()

am 14.12.2006 01:24:29 von Andreas Scherbaum

Andreas Scherbaum wrote:
>
> Interessant ist aber, dass das Ergebnis von count(1) dann 0 ist.
> Wenn ich einen Wert zähle, würde ich irgendwie auch 1 als Ergebnis erwarten.

Ich korrigiere mich: Mysql bis Version 5.0.24a liefert ein '0' als Ergebnis,
Mysql Version 5.0.27 liefert das erwartete '1'.

Wieso wird ein Ausgabe Verhalten in Minor Releases geändert?


Bye

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

Re: count()

am 14.12.2006 08:06:56 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: count()

am 14.12.2006 18:17:40 von QDL

Andreas Scherbaum wrote:

> > Ich lasse mich ja gerne davon überzeugen, dass es in mysql keine
> > Funktionen mit optionalen Parametern gibt (wenn es denn so ist).
>
> Gegenbeweis: select version();

Welchen optionalen Parameter kann man denn da verwenden?

hs

Re: count()

am 14.12.2006 18:17:40 von QDL

Claus Reibenstein <4spammersonly@web.de> wrote:

> Geht's Dir irgendwie nicht gut?

Doch bestens. Danke der Nachfrage.

> Du hast in Deinem ursprünglichen Posting von "Online-Tutorien"
> (Mehrzahl!) gesprochen. Auf meine Nachfrage hast Du genau _ein_ Tutorial
> genannt,

In der Tat war meine Anfrage in dem Punkt etwas ungenau.

> und in diesem Tutorial wird count() an genau _einer_ Stelle
> ohne Argument aufgerufen. Darauf habe ich hingewiesen.

Aber zu welchem Zweck? Mir reichte dieses einmalige Vorkommen, um eine
solche Anfrage auch bei mysql auszuprobieren und entsprechend
nachzufragen.

> Wenn Dir solche Antworten nicht schmecken, solltest Du einfach gar nicht
> erst fragen!

Geschmack ist ja Geschmackssache, nur besser verstehen würde ich solche
Antworten schon gerne.

hs

Re: count()

am 15.12.2006 12:44:33 von Andreas Scherbaum

Holger Schulz wrote:
> Andreas Scherbaum wrote:
>
>> > Ich lasse mich ja gerne davon überzeugen, dass es in mysql keine
>> > Funktionen mit optionalen Parametern gibt (wenn es denn so ist).
>>
>> Gegenbeweis: select version();
>
> Welchen optionalen Parameter kann man denn da verwenden?

Ok, falsch gelesen bzw. interpretiert.
Aufgrund der Diskussion rund um Parameter für count() ging ich davon
aus, das er Funktionen ohne Parameter meint.


Bye

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