2011-07-12 3 views
0

J'ai une table contenant des journaux de pare-feu. J'essaie de former une requête qui me donnera un rapport décroissant de toutes les connexions pour X nombre de jours passés.requête sql aide en utilisant distinct et count()

C'est la requête que j'ai jusqu'à présent:

select distinct ip_saddr,oob_time_sec,count(*) as cnt 
from ulog 
where (oob_prefix like '%INPUT%' and oob_time_sec >= '$phpdays') 
group by ip_saddr 
order by cnt desc; 

table 
----------------------------------------------------------------- 
ip_saddr  = ip address 
oob_time_sec = time since unix epoch in seconds 
ulog   = database table 
oob_prefix = string from firewall entry (INPUT_x/OUTPUT_x traffic) 

Voudrait savoir si cette requête semble sain d'esprit (je suis un administrateur portant un chapeau de programmeur, donc pas trop sûr).

Merci!

Répondre

1

À mon avis, votre requête est correcte et correcte.

+0

Grand, merci de prendre le temps de répondre. – wufoo

1

semble bien pour moi, mais je pense que le LIKE devrait être comme

oob_prefix like 'INPUT%' 

depuis oob_prefix a INPUT_x

+0

Ah, oui. Excellente prise. Je vous remercie. – wufoo