GROUP BY

Units per city.

One row per city (or per group).

Goal

Units per city.

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);
INSERT INTO sales VALUES ('Nairobi', 3, 120);
SELECT city, SUM(units) AS units FROM sales GROUP BY city;
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, COUNT(*) AS rows FROM sales GROUP BY city;
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, SUM(shillings) AS kes FROM sales GROUP BY city ORDER BY kes DESC;
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);
INSERT INTO sales VALUES ('Mombasa', 2, 80);
SELECT city, AVG(units) AS avg_units FROM sales GROUP BY city;