eintrag mit ältestem logdate ausgeben...

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

  • eintrag mit ältestem logdate ausgeben...

    Hi leute,

    ich steh grad irgendwie vor nem wald, und find den ausgang nicht^^ ...

    ich habe eine tabelle access_log, in dieser werden freischaltungen und actions gespeichert.

    Felder:
    ID, AP, CLIENT_MAC, LOGDATE

    AP = Standort, ID is nurn zähler, Logdate timestamp with time zone, client_mac is ne mac_addr.


    Ich hab keine Ahnung wie ich pro AP das "kleinste" logdate in einem gegebenen Monat raussuchen kann.

    habe es mit
    Code:
    SELECT DISTINCT(id), client_mac from access_log where EXTRACT(month from logdate) = EXTRACT(month from current_date) ORDER BY id asc;
    
    SELECT DISTINCT(client_mac), id, logdate from access_log where EXTRACT(month from logdate) = EXTRACT(month from current_date) ORDER BY client_mac asc;
    probiert, aber da zeigt er mir einige macs auch doppelt an und (es sind knapp 236k results) ca. bei der hälfte ist das feld client_mac dann auch noch leer..... denke mal ich geh das ganz falsch an?


    wäre schön wenn mir jemand da helfen könnte...

  • #2
    Hat sich sogesehen erledigt, der Codeguru unserer Firma ist grad eingetroffen und wusste natürlich prompt eine Lösung, sein query sah dann so aus:
    Code:
    SELECT 
        m.ap, m.first 
        FROM (SELECT min(logdate) as first, ap from access_log group by ap) as m
    WHERE 
        m.first > '2009-03-01'::timestamp AND 
        m.first < '2009-04-01'::timestamp AND 
        m.ap != 112 
    ORDER by m.first;
    wobei der timestamp im richtigen script natürlich per variable gesetzt wird...

    hat jemand ne schönere lösung?


    greetz
    ~Bloody
    Zuletzt geändert von bloodstix; 31.03.2009, 14:03.

    Kommentar

    Lädt...
    X