Wie folgende Anfrage formulieren?

Blutiger Anfänger, lieb sein :stuck_out_tongue:.

Aufgabe: Wie viele verschiedene Nachnamen gibt es unter den Mitarbeitern in Tabelle Personal?

Tabelle: 
Personal ( PERSNR , VNAME , NNAME , PROJNR , TELEFONNR , GEHALT )

Wie gehe ich das an? Nehme mal an mit count, mache es aber falsch.

select distinct count(nname) anz_namen
from personal

Danke für jede Hilfe!

Hallo Blutiger Anfänger

, lieb sein :stuck_out_tongue:.

hm. auch wenn du Anfänger bist, wäre eine Begrüßung nett gewesen.

Aufgabe: Wie viele verschiedene Nachnamen gibt es unter den
Mitarbeitern in Tabelle Personal?

Wie gehe ich das an? Nehme mal an mit count, mache es aber
falsch.

für die Zukunft in so einem Fall: was ist denn falsch?

select distinct count(nname) anz_namen
from personal

Distinct ignoriert Dopplungen, wie du offenbar weißt. Deine Anweisung sagt nun: Ignoriere alle doppelten Ergebnisse des Counts von nname.

Aber eigentlich willst du anweisen: Zähle alle eindeutigen nname

Was musst du also verändern?

Herzlichst

Günther

P.S: SQL does not suck. Das Problem liegt wohl eher an deinem Unverständnis der Grundsätze von SQL. Mein Tipp: Wenn deine Hausaufgabe erledigt ist, dann probiere an deiner Datenbank noch ein bisschen rum, du wirst sehen, dass man da echt coole Sachen veranstalten kann. Häufig ist die Datenbank mit allen Datenmanipulationen schneller, als wenn du die Daten nur mittels SELECT holst und dann in einer Programmiersprache verarbeitest.

Schau dir das mal an, das ist ein gut verständlicher Einstieg: http://www.1keydata.com/de/sql/

Hallo
lesen
http://www.sqldocu.com/four/groupby.htm

danke
bitte

er will ja nicht die Häufigkeit jedes einzelnen Nachnamens, sondern die Gesamtzahl verschiedener Nachnamen.

Siehe meinen vorherigen Post.

Jetzt sags ihm doch einer, dann läßt er uns in Ruhe:

SELECT
 COUNT(DISTINCT NNAME)
FROM
 TABELLE;

gruss
b.

Jetzt sags ihm doch einer, dann läßt er uns in Ruhe:

er hat doch schon gar nichts mehr gesagt. Kein Grund zu Ungeduld.

SELECT
COUNT(DISTINCT NNAME)
FROM
TABELLE;

[x] Hausaufgaben erledigt
[] was dabei gelernt

gruss
b.

haste gut gemacht!

haste gut gemacht!

Hallo Günther,

nettes Stichwort (ich hoffe das bezieht sich nur auf das Ursprungsposting). Wie du schon bemerkt hast, deutet der Name des Posters ‚SQLSucks‘ auf eine gehörige Portion Beratungs- bzw. Lernresistenz hin, daher meine Ungeduld.

gruss
b.

An alle, die bisher geantwortet haben:

Was ist denn das für ein Ton hier?
Wenn ihr von den Fragenstellern genervt fühlt, dann antwortet doch einfach nicht.
Oder fühlt Ihr euch jetzt besser?

Eine einzige einfache Antwort hätte genügt. Auf count(distinct …) kommt man nicht so ohne weiteres (und gilt auch nicht für alle SQL Systeme).

Und schon wenn man versucht im offiziellen MySQL-Handbuch etwas über die COUNT(*)-Funktion zu finden kann man verzweifeln. 

Allerdings ist auch ein Hinweis auf Google mit den Stichworten  „distinct count sql“ hilfreich.

Gruß, Max.

haste gut gemacht!

Hallo Günther,

nettes Stichwort (ich hoffe das bezieht sich nur auf das
Ursprungsposting).

ROFL! Warum sollte ich JETZT auf den Ursprungsposter schimpfen? DU hast meinen pädagogischen Ansatz kaputt gemacht und nicht der Ursprungsposter.

Wie du schon bemerkt hast, deutet der Name
des Posters ‚SQLSucks‘ auf eine gehörige Portion Beratungs-
bzw. Lernresistenz hin, daher meine Ungeduld.

Ähm. Das wissen wir nicht. Der Name deutet nur daraufhin, dass er sich schwer tut und frustriert ist. Genau aus dem Grund habe ich ihm eben nicht - so wie du - seine Hausaufgaben fertig gemacht, sondern versucht, ihm die Grundlagen zu verdeutlichen und seinen Denkfehler aufzuzeigen.

Deine Ungeduld hat nur sein jetziges Problem gelöst aber eben nicht seine Abscheu gegenüber der Sprache, weil er sich jetzt eben nicht mehr tiefer damit beschäftigen muss.

Sorry, wenn ich dir mit Sarkasmus gekommen bin, das nächste Mal bin ich direkter.

Günther

An alle, die bisher geantwortet haben:
Wenn ihr von den Fragenstellern genervt fühlt, dann antwortet
doch einfach nicht.

Hab ich gar nicht.

Oder fühlt Ihr euch jetzt besser?

Nö.

Eine einzige einfache Antwort hätte genügt.

Habe ich gegeben

Auf count(distinct
…) kommt man nicht so ohne weiteres (und gilt auch nicht für
alle SQL Systeme).

Ich weiß, darum habe ich versucht, ihm einen Schubs zu geben, ohne ihm das Denken abzunehmen.

Und schon wenn man versucht im offiziellen MySQL-Handbuch
etwas über die COUNT(*)-Funktion zu finden kann man
verzweifeln. 

Hm, sehe ich jetzt nicht so, dort würde ich aber für den Anfang auch nicht danach suchen.

Allerdings ist auch ein Hinweis auf Google mit den
Stichworten  „distinct count sql“ hilfreich.

Dann gib ihn doch.

Günther