Bart Smissaert <bart.smissa...@gmail.com> wrote: > To do with the same, what is wrong with this update SQL? > > update final2 > set group_count = > (select count(*) > from > final2 > group by > group_marker) > > It makes group_count always 1
The subquery does not depend on the values in the row being updated. It always produces the same resultset. Now, the value of the expression of the form "(select ...)" is the value of the first column of the first row of the resultset. In your case, it just happens to be 1. You are probably looking for something like this: update final2 set group_count = (select count(*) from final2 t2 where t2.group_marker = final2.group_marker); Here, the condition of the subquery mentions a value from the outer table, so it's evaluated anew for every row being updated. See also: http://en.wikipedia.org/wiki/Correlated_subquery -- Igor Tandetnik _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users