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

Сводки COUNT и SUM в Rust

Сводные функции сжимают много строк в одно значение. COUNT считает строки или ненулевые ячейки, SUM складывает числа в столбце.

Узнаем, сколько записей в таблице user:

use rusqlite::Connection; fn count_users() -> Result<(), rusqlite::Error> { let conn = Connection::open("app.db")?; let total: i64 = conn.query_row( "SELECT COUNT(*) FROM user", [], |row| row.get(0), )?; println!("{}", total); Ok(()) } fn main() { match count_users() { Ok(()) => {} Err(e) => println!("{}", e), } }

На экране одно число. Звездочка внутри COUNT означает все строки, подходящие под запрос.

Для суммы нужен числовой столбец. Пример с таблицей очков:

use rusqlite::{Connection, params}; fn sum_points() -> Result<(), rusqlite::Error> { let conn = Connection::open("app.db")?; conn.execute( "CREATE TABLE IF NOT EXISTS score ( id INTEGER PRIMARY KEY, points INTEGER NOT NULL )", [], )?; let total: i64 = conn.query_row( "SELECT SUM(points) FROM score", [], |row| row.get(0), )?; println!("{}", total); Ok(()) } fn main() { if let Err(e) = sum_points() { println!("{}", e); } }

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

CREATE TABLE user ( id INTEGER PRIMARY KEY, name TEXT NOT NULL );

Выведите число строк в user через COUNT.

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

1 10 2 20 3 5

Столбцы id и points. Выведите сумму points через SUM.

Скажите, сколько строк вернет запрос с COUNT(* ) без GROUP BY.

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