La division en sqlite renvoie une valeur entière
sqlite> select totalUsers/totalBids from
(select (select count(*) from Bids) as totalBids ,
(select count(*) from Users) as totalUsers) A;
1
Pouvons-nous transtyper le résultat pour obtenir la valeur réelle du résultat de la division?
Multipliez simplement l'un des nombres par 1.0
:
SELECT something*1.0/total FROM somewhere
Cela vous donnera une division en virgule flottante au lieu d'une division entière.
Dans Sqlite, la division d'un entier par un autre entier sera toujours arrondie à l'entier le plus proche.
Par conséquent, si vous transformez votre énumérateur en un flottant:
SELECT CAST(field1 AS FLOAT) / field2
select cast ( ( select 1 ) as real );
ou si vous souhaitez mettre à jour la colonne en fonction de la colonne de texte:
UPDATE table_with_fields SET real_field=cast(field_with_txt AS real)