Подтвердить что ты не робот

Преобразование int в real в sqlite

Разделение в sqlite возвращает целочисленное значение

sqlite> select totalUsers/totalBids from 
(select (select count(*) from Bids) as totalBids , 
(select count(*) from Users) as totalUsers) A;
1

Можно ли придумать результат, чтобы получить реальное значение результата разделения?

4b9b3361

Ответ 1

Просто умножьте одно из чисел на 1.0:

SELECT something*1.0/total FROM somewhere

Это даст вам деление с плавающей запятой вместо целочисленного деления.

Ответ 2

В Sqlite деление целого на другое целое будет всегда округлять до ближайшего целого числа.

Поэтому, если вы перечислите свой счетчик на float:

SELECT CAST(field1 AS FLOAT) / field2

Ответ 4

или если вы хотите обновить столбец на основе текстового столбца:

UPDATE table_with_fields SET real_field=cast(field_with_txt AS real)