SQLite affinity: INTEGER, REAL, TEXT.
Goal
Store a REAL price next to INTEGER units.
DROP TABLE IF EXISTS sales;
CREATE TABLE sales (
city TEXT,
units INTEGER,
price REAL
);
INSERT INTO sales VALUES ('Nairobi', 12, 40.0), ('Mombasa', 8, 40.5);
SELECT city, units, price, typeof(units), typeof(price) FROM sales;DROP TABLE IF EXISTS sales;
CREATE TABLE sales (city TEXT, units INTEGER);
INSERT INTO sales VALUES ('Kisumu', '5');
SELECT city, units, typeof(units) FROM sales;DROP TABLE IF EXISTS sales;
CREATE TABLE sales (
city TEXT,
units INTEGER,
shillings INTEGER
);
INSERT INTO sales VALUES
('Nairobi', 12, 480),
('Mombasa', 8, 320),
('Kisumu', 5, 200);
SELECT city, CAST(shillings AS REAL) / units AS price FROM sales;DROP TABLE IF EXISTS flags;
CREATE TABLE flags (city TEXT, open INTEGER);
INSERT INTO flags VALUES ('Nairobi', 1), ('Nakuru', 0);
SELECT city, open FROM flags WHERE open = 1;