fix Mysql sum return integer instead of float

This PR fix a wrong conversion to integer in sum
calculation when the table name is included in
the fied of sum.

It fixes two main bugs:

* the wrong stripped column_name from an expression like
  `table_name.column_name * 2.1`  in `column_name_from_field`

* No `type_cast_using_column`of value in `sum` because
  it could have an expression like  `table_name.column_name * 2.1`
  where `column_name` type is integer but the result is no integer

  Before:

      Account.sum("2.1 * accounts.credit_limit") => 667

  After:

      Account.sum("2.1 * accounts.credit_limit") => 667.8

Fixes #12937