MySQL query question -


i have mysql table contains many rows. table structure follows:

id: bigint, event_type: int, total: int 

sample data:

id    event_type    total 1      1            null 2     -1            null 3      1            null 4      1            null 5      1            null 6     -1            null 7     -1            null 8     -1            null 

the event_type either 1 or -1. total set null. there simple sql query accumulate values of event_type in total. so, table like:

id    event_type    total 1      1            1 2     -1            0 3      1            1 4      1            2 5      1            3 6     -1            2 7     -1            1 8     -1            0 

also, total column can partially calculated. in other words, need run query while table still being modified (by insertions). know can done using php or perl code. however, nice using sql queries.

since indeed mysql not allow update table reading from, can temporary table.

create table temp select a.id, sum(b.event_type) tot  your_table  left join your_table b on b.id <= a.id group a.id;  update your_table,temp  set your_table.total = temp.tot  your_table.id = temp.id;  drop table temp; 

Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -