Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpDpOn 236 of 288 menu
◀ ▶

Одна таблица в Rust

В этих задачах потренируем чтение и подсчет по одной таблице. Схема и строки заданы текстом в блоке данных, готовый текст запроса не приведен.

Дана таблица:

let setup = r#" 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.

Дана таблица:

let setup = r#" 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(*).

Дана таблица:

let setup = r#" 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.

Дана таблица:

let setup = r#" CREATE TABLE items ( id INTEGER PRIMARY KEY, title TEXT NOT NULL, qty INTEGER NOT NULL ); INSERT INTO items (title, qty) VALUES ('pen', 3); INSERT INTO items (title, qty) VALUES ('book', 1); INSERT INTO items (title, qty) VALUES ('pen', 2); "#;

Выведите все title в порядке возрастания id, по одному на строку.

Дана таблица:

let setup = r#" 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 в Option<String> и для пустого поля выведите "empty", иначе текст.

Дана таблица:

let setup = r#" 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 через группировку.

Дана таблица:

let setup = r#" 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 по возрастанию.

Дана таблица:

let setup = r#" 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); "#;

Посчитайте строки, где done равно 0, и выведите число.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить