Практика на одну таблицу в Go
В этих задачах потренируем выборку из одной таблицы. Таблицы заданы текстом создания и вставки.
Дана таблица:
CREATE TABLE payments (
id INTEGER PRIMARY KEY,
label TEXT NOT NULL,
amount REAL NOT NULL
);
INSERT INTO payments (label, amount) VALUES ('rent', 120);
INSERT INTO payments (label, amount) VALUES ('food', 45.5);
INSERT INTO payments (label, amount) VALUES ('bus', 12);
Создайте таблицу, вставьте строки и
выведите сумму столбца amount.
Дана таблица:
CREATE TABLE visits (
id INTEGER PRIMARY KEY,
page TEXT NOT NULL
);
INSERT INTO visits (page) VALUES ('home');
INSERT INTO visits (page) VALUES ('home');
INSERT INTO visits (page) VALUES ('help');
Выведите число строк в visits
через COUNT(*).
Дана таблица:
CREATE TABLE scores (
id INTEGER PRIMARY KEY,
player TEXT NOT NULL,
points INTEGER NOT NULL
);
INSERT INTO scores (player, points) VALUES ('ann', 8);
INSERT INTO scores (player, points) VALUES ('bob', 15);
INSERT INTO scores (player, points) VALUES ('kim', 11);
Выведите наибольшее значение points.
Дана таблица:
CREATE TABLE tasks (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
done INTEGER NOT NULL
);
INSERT INTO tasks (title, done) VALUES ('read', 1);
INSERT INTO tasks (title, done) VALUES ('write', 0);
INSERT INTO tasks (title, done) VALUES ('test', 0);
Выведите title только для строк,
где done равно 0.
Дана таблица:
CREATE TABLE cities (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
pop INTEGER NOT NULL
);
INSERT INTO cities (name, pop) VALUES ('oslo', 700000);
INSERT INTO cities (name, pop) VALUES ('bergen', 280000);
INSERT INTO cities (name, pop) VALUES ('trondheim', 210000);
Выведите имена городов по убыванию
pop.
Дана таблица:
CREATE TABLE logs (
id INTEGER PRIMARY KEY,
msg TEXT NOT NULL,
level INTEGER NOT NULL
);
INSERT INTO logs (msg, level) VALUES ('start', 1);
INSERT INTO logs (msg, level) VALUES ('warn', 2);
INSERT INTO logs (msg, level) VALUES ('stop', 1);
INSERT INTO logs (msg, level) VALUES ('info', 1);
Выведите msg для двух первых
строк при сортировке по id
по возрастанию.
Дана таблица:
CREATE TABLE notes (
id INTEGER PRIMARY KEY,
body TEXT
);
INSERT INTO notes (body) VALUES ('alpha');
INSERT INTO notes (body) VALUES (NULL);
INSERT INTO notes (body) VALUES ('beta');
Пройдите все строки, прочитайте body
в sql.NullString и для пустого
поля выведите "empty", иначе текст.
Дана таблица:
CREATE TABLE sales (
id INTEGER PRIMARY KEY,
region TEXT NOT NULL,
units INTEGER NOT NULL
);
INSERT INTO sales (region, units) VALUES ('north', 3);
INSERT INTO sales (region, units) VALUES ('north', 2);
INSERT INTO sales (region, units) VALUES ('south', 5);
Для каждого region выведите
сумму units через группировку.