Announcement

Collapse
No announcement yet.

Wie oft kommt eine Nummer in einer Tabelle vor?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie oft kommt eine Nummer in einer Tabelle vor?

    Hi,

    ich möchte zählen wie oft willkürliche Nummern in einer Spalte vorkommen. Die Nummern sind immer eindeutig

    Beispiel: Spalte ist transponiert dargstellt


    [2, 2, 2, 2, 66 66, 9, 5 ,5 ,5 ,5 ,3 ,100 ,102]^T


    Was ich als Ergebnis haben möchte:

    4x kam eine Zahl einfach vor
    1x kam eine Zahl zweifach vor
    0x kam eine Zahl dreifach vor
    2x kam eine Zahl vierfach vor

    sprich:
    1 -> 4
    2 -> 1
    3 -> 0
    4 -> 2

    Geht das in SQL?




  • #2
    Da es in einer Column ist muss der String aufgeteilt werden. Dies ist schon aus der Struktur des Strings schlecht (Klammern, weitere Zeichen die keine Beachtung finden sollen).
    Wo die Ziffern eindeutig sein sollen, erschließt sich nicht
    Dann müssen nicht bekannte, gleiche Ziffern erkannt werden. Dann müssen sie gezählt werden.
    Da sehe ich reines SQL weniger am Start vielmehr eine Procedur oder das wird durch das Programm, welches die Tabelle nutzt erledigt
    Christian

    Comment


    • #3
      Hallo Christian,

      also die Zahlenwerte liegen schon atomar vor. Also in diesem Fall handelt es sich um eine Tabelle mit einer Spalte und 14 Reihen.

      Edit: DIe 14 Werte sind ja auch nur ein Beispiel. Der reale Fall hat ca. 100 Millionen Reihen. Aber das ist ja egal. Sollte ja für jegliche Anzahl an Reihen funktionieren.

      Comment


      • #4
        Dann bin ich von einer falschen Voraussetzung ausgegangen.

        select distinct spalteNr,count(*) from tabelle group by spalteNr
        Christian

        Comment


        • #5
          Originally posted by Christian Marquardt View Post
          select distinct spalteNr,count(*) from tabelle group by spalteNr
          Ich glaube das ergibt nicht das Ergebnis. Ich möchte ja nicht wissen, wie oft die Zahl 4 vorkommt, sonder wie irgeneine Zahl viermal vorkommt.

          Comment


          • #6
            select distinct sub.anzahl, count(*) from
            (
            select spalteNr, count(*)as anzahl from tabelle group by spalteNr order by 2
            ) sub
            group by sub.anzahl order by 1;

            Christian

            Comment

            Working...
            X