-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Graeme Lee
Sent: 24 February 2005 02:52 AM
To: [email protected]
Subject: Re: SQL Query to get total bandwidth used per user per month.

Hyperlink Admin wrote:

>Hi Guys,
> 
>Ok, what I would like to do is the following:
> 
>I would like to create a seperate radacct for each month.
> 
>It would be nice to have them going radacct1, raddact2, and so on. and 
>then when it get to next year this time, just carry on with radacct13, 
>radacct14 and so on, otherwise Ill just restart with radacct1 next year.
> 
>Does anybody know how I would go about setting this up ? Would it be 
>possible to do this automatically ? or would I have to change the 
>config file to write to a different radacct<no> each month ?
>  
>
>>Maybe a second table for radacct_historical_data would be suitalbe?  
>>Move the data to the historical table and then delete it from your working
radacct table.

So for example: radacct and radacct_historical_data and then have a script
just adding the data to the end of the radacct_historical_data table each
month, and clearing the radacct table ?

Would I do this with a SQL query ? If so, what would the query look like ?

Then I can just create a script executing the query every month.

> 
>Then, my second question:
> 
>I need to get monthly total bandwidth transfer (both incomming and 
>outgoing
>traffic) for each user. This I got figured out with the following SQL
query:
> 
>SELECT username, sum(acctinputoctets+acctoutputoctets) AS total FROM 
>radacct GROUP BY username;
> 
>It works great, but to sit and filter through all the users will be a 
>pain each day.
> 
>I need it to only print the users that is over a cetain amount.
> 
>I have tried the following:
> 
>SELECT username, sum(acctinputoctets+acctoutputoctets) AS total FROM 
>radacct WHERE  sum(acctinputoctets+acctoutputoctets) > 3221225472 GROUP 
>BY username;
> 
>and here is the error:
> 
>ERROR 1111 (HY000): Invalid use of group function
>  
>
>>You need a sub-select

>>SELECT * FROM (SELECT username, sum(acctinputoctets+acctoutputoctets) AS
total FROM radacct GROUP BY username) AS foo
>>radius-> WHERE total > 3221225472;

Works great !!! Thank you !
> 
>Im sure there is a way to do it, but I have never really worked with MySQL
>or any queries. What I got here, I patched together from reading around on
>the net and on this list.
>  
>
>>I'm using postgresql.

Let me rephrase -> Ive never used any sort of sql. Most Ive done with
databases is a little access database.
> 
>Last thing. And here I think I am actually pushing my luck.
> 
>Will it be possible (when the previous query actaully works) to
>automatically take all the users listed in the results of the previous
query
>and moved them from one group (profile) to another.
>  
>
>>Well I'd suggest triggers which get fired on updates on the radacct 
>>table, which update a separate table with username, month, and data 
>>(plus whatever else you need to keep on a monthly basis).  Your trigger 
>>would have the benefit of being fired automatically rather than relying 
>>on human intervention.  Or you could use cron, and have an external 
>>script which checks the db regularly, and massages the data according to 
>>your needs.

Ok, im kinda lost. Triggers ? How would I add a trigger ? How does it work ?


Sorry, Like I said, im kind new to this....


But thanks for the advise so far, I really appreciate it.
> 
> 
> 
>The thing is, we are reselling ADSL accounts for the local Telco company
>here, and they are very strict on capping accounts on 3GB. So in order for
>us to be able to provide the service I need to check total usage for each
>user on a daily basis and if he is over the cap, he needs to be moved to a
>much slower service.
> 
>I got the 2 different groups setup - capped and uncapped, and it is working
>fine.
> 
>I would really appreciate it if someone could help me.
> 
>Thank you,
> 
>Jacqueco Peenz
>
>  
>


- 
List info/subscribe/unsubscribe? See
http://www.freeradius.org/list/users.html





- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to