Dirk: Problem beim ermitteln der Datensätze

Hallo liebe Experten,

ich habe verschiedene Ansätze ausprobiert und ein Problem zu lösen,bin jedoch nicht fündig geworden.
Als newbie weiß ich wie ich die Anzahl der Datensätze in einer Tabelle ermitteln kann-jetzt habe ich jedoch folgendes Problem:

In einer Spalte meiner Tabelle befinden sich Werte,die sich wiederholen.
Sagen wir mal die Spalte heißt "nummer" und ich möchte jetzt
1. ermitteln in wievielen Zeilen dieselbe Nummer vorkommt und
2. nach den häufigsten 10 in absteigender Form sortieren

Wie geht das am besten?

  1. Grüße,
    du könntest zB nach den "nummer"-werten sortieren
    und bei der ausgabe die wiederholungen der werte
    zählen (

      
    if($x==$ausgabe){  
     $y[$p]++;  
    }else{  
    $p++; $y[$p]++; $x=$ausgabe;  
    }  
    
    

    ).
    so hast du die häufigket der werte in der tabelle.
    wenn du zusützlich bei jeder $p-addition den neuen $ausgabe wert mitspeicherst hättest du die werte und die dazugehörige "trefferzahl"

    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
    Boccaccio
    1. Hallo,

      an diesen Ansatz habe ich auch schon gedacht,aber dabei treten folgende Probleme auf:
      Ich kann beim select ja nicht irgendwie nach der Anzahl/Häufigkeit der betroffenen Zeilen sortieren,sondern halt nur nach der Spalte "nummer".

      Bei der von dir vorgeschlagenen Ausgabe würde zwar das reine zählen klappen,aber halt nicht sortiert nach den häufigsten 10.

      Würde diese Hürde überwunden ,könnte ich ja die 10 Ergebnisse wiederum mitsamt der Zählerwerte in einer anderen Tabelle einbauen und fertig wärs.

  2. echo $begrüßung;

    In einer Spalte meiner Tabelle befinden sich Werte,die sich wiederholen.

    1. ermitteln in wievielen Zeilen dieselbe Nummer vorkommt und

    Gruppiere nach dieser Spalte und verwende eine Aggegatfunktion. COUNT(*) kennst du ja schon, das hilft hier auch.

    1. nach den häufigsten 10 in absteigender Form sortieren

    Sortiere das Ergebnis nach der COUNT-Spalte.

    echo "$verabschiedung $name";

    1. Wie müßte denn der Syntax genau aussehen?

      Das hier führt zu keinem Ergebnis:
      "SELECT count(*) AS anzahl FROM alle2 GROUP BY nummer"

      1. Hello,

        Das hier führt zu keinem Ergebnis:

        hmh, d.h.? KEIN Ergebnis? Merkwürden...

        "SELECT count(*) AS anzahl FROM alle2 GROUP BY nummer"

        na ja, so auf den ersten Blick:
        SELECT gleicherwert, COUNT(gleicherwert) AS anzahl
        FROM tabelle
        GROUP BY gleicherwert
        sollte eigentlich genau das gewünschte Ergebnis bringen
        Füge noch ein ORDER BY anzahl DESC hinzu und du hast sie absteigend nach Häufigkeit sortiert.

        MfG
        Rouven

        --
        -------------------
        sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
        Eine Bilanz ist wie der Bikini einer Frau. Sie zeigt fast alles, aber verdeckt das Wesentliche  --  Günter Stotz, Regierungsdirektor des baden-württembergischen Wirtschaftsministeriums
        1. Hatte mich nur noch vertippt.
          Jetzt klappts. Ich durchlaufe das Ergebnis und vergleiche nun auf identische Werte. Falls nicht,wird die letzte Zeile in eine temporäre Tabelle gespeichert-dort findet sich dann auch der Zähler.
          Bei der Ausgabe greife ich dann auf diese Tabelle zurück und sortiere nach den Zähler :)