Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Bestimmtes Feld ohne PHP summieren?

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.01.2007
    Beiträge
    5

    Bestimmtes Feld ohne PHP summieren?

    Hi,

    also ich muss gestehen, weder PHP, noch MySQL gehoert zu meinen Staerken. Habe vor kurzem einen Netflow Server mit DB aufgesetzt und wuerde jetzt gerne die Daten zusammenzaehlen (ohne PHP). Gibt es da einen einfachen Query bei SQL?
    Der Table besteht aus mehreren Feldern, wichtig dabei waere aber nur das Feld "agent_id" um die Probes zu separieren und das Feld "bytes" wo die Daten enthalten sind. Die betreffenden Zeilen erhalte ich mit:
    SELECT *
    FROM `acct_v5_sql1_2007_01_10`
    WHERE agent_id =102

    Daraus wuerde ich jetzt gern alle bytes-Felder zusammenzaehlen lassen. Gibts da ne SUM Funktion oder aehnliches?

    Merci

  2. #2
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Hab jetzt keine MySQL gerade zur Hand.

    Aber normalerweise gehts mit sum

    Also bei Oracle gehts mit:

    Code:
    select sum(bytes) from acct_v5_sql1_2007_01_10 where agent_id =102;
    Aber sag einmal, was für Tabellennamen sind das denn? Sehen irgendwie autogeneriert aus.

    Wenn du noch mehr Felder dazumöchtest, brauchst du ein group by.

    Also z.B.

    Code:
    select agent_id, sum(bytes) from acct_v5_sql1_2007_01_10 where agent_id =102 group by agent_id;
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  3. #3
    Registrierter Benutzer
    Registriert seit
    10.01.2007
    Beiträge
    5
    Ja, die werden taeglich dynamisch erstellt weil die SQL Abfrage sonst zu lange dauern wuerde. LOL ich scheiss ab, das funktioniert und ich waelz jetzt schon ewig die PHP Seiten durch.

    Merci dir!



    EDIT: mal ganz was bloedes ... die Anzahl der Rows, bekomm ich die so auch irgendwie?
    Geändert von Dormant (10-01-2007 um 10:10 Uhr)

  4. #4
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Kommt darauf an was du genau möchtest. Also am einfachsten wäre eine zweite Abfrage á la

    Code:
    select count(*) from ... where ...
    Alles in einem sollte so gehen:

    Code:
    select count(bytes), sum(bytes) from ... where ...
    mfg, christian
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.01.2007
    Beiträge
    5
    Klappt wunderbar! Wie einfach SQL eigentlich ist ...

  6. #6
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    SQL wurde für den gemeinen Manager entwickelt.
    Auch wenn es für die Schlipsträger etwas zu schwer ist, für normaldenkende ist es kein Problem.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  7. #7
    Registrierter Benutzer
    Registriert seit
    10.01.2007
    Beiträge
    5
    Dann bin ich wohl nicht normaldenkend.

    "*" ist kein wildmask-Zeichen bei SQL? (DROP table *2006*)

  8. #8
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    wildcards wie du sie meinst sind %

    funktioniert aber nicht so bei drop oder ähnlich

    da musst du dich schon mit dynamic-sql beschäftigen
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  9. #9
    Registrierter Benutzer
    Registriert seit
    10.01.2007
    Beiträge
    5
    Guter Hinweis, danke. Werd ich mir mal genauer anschauen .. THX

  10. #10
    Registrierter Benutzer
    Registriert seit
    21.06.1999
    Beiträge
    677
    Zitat Zitat von Dormant Beitrag anzeigen
    Ja, die werden taeglich dynamisch erstellt weil die SQL Abfrage sonst zu lange dauern wuerde.
    Hm, klingt sehr merkwürdig. Normalerweise solltest du das lösen können mittels partieller Indizes. Also alle Sätze in eine Tabelle und je Tag einen Index anlegen: CREATE INDEX ... WHERE DATUM=....;

  11. #11
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Leider arbeitet er aber auf MySQL und da ist die Maximalanzahl der Indizes pro Tabelle auf 16 beschränkt. Da wird er nach 2 Wochen schon ziemlich alt aussehen.
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  12. #12
    Registrierter Benutzer
    Registriert seit
    21.06.1999
    Beiträge
    677
    Zitat Zitat von Waxolunist Beitrag anzeigen
    Leider arbeitet er aber auf MySQL und da ist die Maximalanzahl der Indizes pro Tabelle auf 16 beschränkt.
    Da bin ich ja mal wieder froh, dass ich bisher noch nicht mit MySql arbeiten musste...

  13. #13
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Soweit ich weiß gilt das nur bei MyISAM, bei InnoDB nicht.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •