php - Get average of values for a specific time frame and specific entry types -


i have table this:

id | type | value | timestamp --------------------------------  1  | aaa  | 0.5   | day 1 hour 1  2  | bbb  | 1.5   | day 1 hour 1  3  | ccc  | 1.8   | day 1 hour 1 ..... 11  | aaa  | 0.6   | day 1 hour 2 12  | bbb  | 1.4   | day 1 hour 2 13  | ccc  | 1.5   | day 1 hour 2 .....   id := int, pk, ai, , on type := string/varchar value := double timestamp := unix timestamp (int), changed date type 

what want average specific timeframes. example:

i want aaa , bbb average of "value" day 1 till day 3. every day has 24 entries per type on several days.

expected result be

type | average | timestamp/date ------------------------------- aaa  | 0.5242  | day 1 aaa  | 0.5442  | day 2 aaa  | 0.5913  | day 3 bbb  | 1.4228  | day 1 bbb  | 1.6924  | day 2 bbb  | 1.3018  | day 3 

i'm not sure if possible mysql. maybe it's more efficient php?

does produce result require?

# drop table if exists likethis;  create table likethis (id int unsigned, `type` char(255), `value` decimal(2,1), `timestamp` char(255));  insert likethis values     (1, 'aaa', 0.5, 'day 1 hour 1'),     (2, 'bbb', 1.5, 'day 1 hour 1'),     (3, 'ccc', 1.8, 'day 1 hour 1'),     (11, 'aaa', 0.6, 'day 1 hour 2'),     (12, 'bbb', 1.4, 'day 1 hour 2'),     (13, 'ccc', 1.5, 'day 1 hour 2');  select * likethis;  select type, avg(`value`) average, left(`timestamp`, instr(`timestamp`, 'hour') - 2) timestampdate likethis group `type`, left(`timestamp`, instr(`timestamp`, 'hour') - 2); 

let me know if not,

regarding how adapt query if date stored in differing field types, here example queries:

# how aggregate day on datetime field type timestamp select type, avg(`value`) average, date_format(`timestamp`, '%y%m%d') timestampdate likethis group `type`, date_format(`timestamp`, '%y%m%d');  # how aggregate day on unix timestamp (stored int) field type timestamp select type, avg(`value`) average, `timestamp` - `timestamp` % 86400 timestampdate likethis group `type`, `timestamp` - `timestamp` % 86400; 

thanks,

james


Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -