prozentrechnung

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

  • prozentrechnung

    hallo zusammen,

    hab arge probs mit mysql und der prozentrechnung:
    ich habe eine tabelle (test) mit einer spalte (browser). einträge der spalte msie5, msie6,opera,opera

    nun möchte ich ausgeben wie oft ein browser genutzt wurde, noch relativ einfach:

    SELECT distinct browser, COUNT(browser) AS anzahl FROM test GROUP BY browser;

    +---------+--------+
    | browser | anzahl |
    +---------+--------+
    | MSIE 5 | 1 |
    | MSIE 6 | 1 |
    | Opera | 2 |
    +---------+--------+

    aber wie brkomme ich die entsprechenden prozentangaben dahinter?

    SELECT distinct browser, COUNT(browser) AS anzahl, ((xyz/xyz_gesamt)*100) AS prozent FROM test GROUP BY browser;


    +-----------+---------+---------------
    | browser | anzahl | prozent
    +-----------+---------+------------------
    | MSIE 5 | 1 | ? (25%)
    | MSIE 6 | 1 | ? (25%)
    | Opera | 2 | ? (50%)
    +-----------+----------+

    vielen dank schon mal
    norman
    Zuletzt geändert von norman79; 30.07.2003, 15:09.

  • #2
    Hallo,
    hoffe für dich, das ich zwar falsch liege, aber unter sql, dürfte sich das etwas schwieriger realisieren lassen.
    Deinen Denkansatz finde ich richtig, jedoch dürfte das mit der gesamtanzahl nicht funktionieren, du wirst erst die gesamte anzahl der datensätze auslesen müssen und diese zahl manuell in deine SELECT operation eintragen, da sql in diesem zusammenhang "xyz_gesamt" nicht kennen dürfte.

    Hab auch mal fix mit ms_access rumgebastellt, da ging nix unter 2 tabellen bzw. 1 formular um dieses operation auszuführen.

    Frage: willst du dir diese Ergebnis nur in SQL anschauen oder sogar in PHP/HTML form weiterverarbeiten?

    Kommentar


    • #3
      hallo jochenj,

      ja, ich möchte die sql-ausgabe dann mit perl weiterverarbeiten. mit perl/php ists ja sicher dann nicht mehr so schwierig den gesamt_anzahl parameter zu übergeben. etwa so in pseudocode

      $anzahl = SELECT COUNT(browser) FROM test;

      SELECT distinct browser, COUNT(browser) AS anzahl, ((COUNT(browser)/$anzahl)*100) AS prozent FROM test GROUP BY browser;

      hätte aber gern ne info obs komplett in mysql geht? vielleicht mit views? (wenn mysql das unterstützt...)

      mfg
      norman

      Kommentar


      • #4
        Ob es im MYSQL geht kann ich dir nicht sagen. Ich würde das ausserhalb von der Anweisung per Script machen.
        Beispiel
        PHP-Code:
        $re1 mysql_query("SELECT COUNT(*) D_Summe FROM tabelle")or die(mysql_error());
        $Anzahl mysql_result($re1,0);
        $res mysql_query("SELECT *, COUNT(spalte) D_ergebnis FROM tabelle GROUP BY spalte ORDER BY D_ergebnis DESC")or die(mysql_error());
        while(
        $row mysql_fetch_array($res))
            {
            
        $werte[] = sprintf("%01.2f", (100 $Anzahl ) * $row['D_ergebnis']);
            
        $text1[] = '.'.$row['spalte'];
            } 
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #5
          PHP-Code:
          $re1 mysql_query("SELECT COUNT(*) D_Summe FROM tabelle")or die(mysql_error());
          $Anzahl mysql_result($re1,0);
          $sql='SELECT 
              *, COUNT(spalte) D_ergebnis, ( COUNT(spalte) / '
          .$Anzahl.') prozent
          FROM tabelle
          GROUP BY spalte
          ORDER BY D_ergebnis DESC'
          ;
          $res mysql_query($sql)or die(mysql_error()); 
          sollte auch gehen und du musst das nich mehr in php berechnen
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar

          Lädt...
          X