HAVING filters groups after GROUP BY.
Goal
Keep cities with at least 8 units.
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(units) AS units FROM sales GROUP BY city HAVING SUM(units) >= 8;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 HAVING SUM(shillings) > 200;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', 1, 40);
SELECT city, COUNT(*) AS rows FROM sales GROUP BY city HAVING COUNT(*) > 1;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, AVG(units) AS avg_u FROM sales GROUP BY city HAVING AVG(units) >= 8;