Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu Aggregatsfunktion count()

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • FiSiHRO
    hat ein Thema erstellt Frage zu Aggregatsfunktion count().

    Frage zu Aggregatsfunktion count()

    Moinsen. Hab hier kleines Problemchen. Probiere scon seid ner Stunde rum und hab auch schon auf diversen Seiten geschaut. Nu frag ich einfach mal.

    Also ich habe eine Tabelle welche Daten von Gebieten, km-ständen, aktionen etc. enthält.
    Ich soll nun alle vorhandenen Gebiete zählen. Nur stelle ich mich da grad bissel zu doof an, wie es scheind.

    Select gebiet, count(*) as anzahl from TabHekto group by gebiet;

    Das is so was ich bis jetzt habe aber is ja totale Grütze. Da zählt er mir ja nur die Anzahl wie oft jedes Gebiet vorkommt.

    Wäre nett wenn mir einer helfen könnte.

    Gruß FiSiHRO

  • Gast-Avatar
    Ein Gast antwortete
    Auweia.
    Entweder gibt es einen wirklich guten grund für dieses Design oder es ist eben kein DB-Design sondern Pfusch.
    Du bist Dir sicher, dass sich die Leute da mit Datenbanken auskennen?

    Sorge bitte wenigstens dafür, dass es einen Index über das Feld gebiet gibt oder dass er eingerichtet wird.
    So hat die Datenbank wenigstens eine Chance, DISTINCT aus dem Index zu bedienen .... auch wenn ich mir da bei access nicht so sicher bin.

    Einen Kommentar schreiben:


  • FiSiHRO
    antwortet
    Ähm jo. Nur folgendes Prob: Ich bin Praktikant in ner Softwareentwicklungsfirma, und habe die Daten so vorgesetzt bekommen. Das ist nen ganzes Datenbankmodell, in dem ich nicht rumfuschen kann. Das Ding besteht schon aus circa 20 Tabellen.
    Naja ich habs jetzt nach dem zweiten ersten Vorschlag gelöst

    Danke nochmal.

    Gruß FiSiHRO

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Dann such Dir mal was zu den drei Normalenformen bei relationalen Datenbanken raus.
    Dann gehen viele Sachen leichter und wesentlich schneller, zB das Zählen der Gebiete.

    Tabelle Gebiete:
    gebiet_id autowert
    gebiet_name text(60)

    Tabelle KeineAhnungWieDieHeisst
    id (primärschlüssel)
    gebiet_id zahl
    ...

    Zählen der Gebiete: SELECT Count(*) FROM Gebiete

    Warum sich das Aufteilen der Informationen auszahlt, sollte auch im tutorial zu den Normalformen stehen.

    Einen Kommentar schreiben:


  • FiSiHRO
    antwortet
    tabell:

    id (primärschlüssel)
    gebiet (text(60))
    fluss (text(60))
    kategorie (text(60))
    name (text(110))
    km (zahl)
    ufer (text(2))
    rw (zahl)
    hw (zahl)
    bemerkung (text(255))

    Sorry das ich nicht mit angegeben habe, dass es Access ist.
    Gebiete sind nicht woanders ausgelagert. Stehen direkt dort drinne.

    Gruß Patriot76

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Das dann bitte immer gleich bei der Frage dazuschreiben.
    Denn diese Kategorie hier heißt MYSQL. Und jede Datenbank hat ihre Eigenheiten.
    Glück gehabt, DISTICT gehört nicht dazu, sondern ist sql Standard.

    Aber sind Deine Gebiete nicht eh' in einer anderen Tabelle ausgelagert?
    Also ich habe eine Tabelle welche Daten von Gebieten, km-ständen, aktionen etc. enthält.
    Beschreib diese tabelle bitte mal genauer. Für mich klingt es erstmal, als wäre sie nicht normalisiert.

    Einen Kommentar schreiben:


  • FiSiHRO
    antwortet
    Wird mit Access gemacht. In Verbindung mit c/c++.

    Wenn keiner einen anderen Vorschlag hat, werd ich sie dann wohl so auslesen.
    Danke für deinen Vorschlag.

    Gruß FiSiHRO

    Einen Kommentar schreiben:


  • BlackHawkDC
    antwortet
    welche mysql-Version hast du.

    ansonsten kann ich dir nur raten
    Code:
      select distinct gebiet from TabHekto
    und dann in der Applikation die Anzahl der Zeilen auslesen.

    Einen Kommentar schreiben:


  • FiSiHRO
    antwortet
    Danke für die Antwort. Das hatte ich auch schon ausprobiert und ebend sicherheithalber auch nochmal. Da spuckt er aber immer einen Fehler aus: Syntaxfehler (fehlender Operator) in Abfrageausdruck 'count(distinct gebiet)'

    Weitere Vorschläge?

    Gruß FiSiHRO

    Einen Kommentar schreiben:


  • BlackHawkDC
    antwortet
    Code:
    SELECT 
      count(distinct gebiet)
    FROM 
      TabHekto

    Einen Kommentar schreiben:

Lädt...
X