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

Сводные функции SQL в SQLite в Dart

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

Несколько функций можно запросить в одном SELECT с псевдонимами для чтения из строки результата:

import 'package:sqlite3/sqlite3.dart'; var db = sqlite3.open('stats.db'); db.execute(''' CREATE TABLE IF NOT EXISTS loads ( id INTEGER PRIMARY KEY, kg INTEGER NOT NULL ) '''); db.execute('INSERT INTO loads (kg) VALUES (10)'); db.execute('INSERT INTO loads (kg) VALUES (25)'); db.execute('INSERT INTO loads (kg) VALUES (15)'); var rows = db.select(''' SELECT COUNT(*) AS cnt, SUM(kg) AS total, MIN(kg) AS light, MAX(kg) AS heavy FROM loads '''); if (rows.isNotEmpty) { var row = rows.first; print(row['cnt']); print(row['total']); print(row['light']); print(row['heavy']); } db.dispose();

Запись COUNT(*) не смотрит на NULL в отдельных полях - считаются строки целиком. Для пустой таблицы агрегаты все равно вернут одну строку результата:

import 'package:sqlite3/sqlite3.dart'; var db = sqlite3.open('stats.db'); var rows = db.select('SELECT COUNT(*) AS cnt FROM loads'); if (rows.isNotEmpty) { print(rows.first['cnt']); } db.dispose();

Создайте таблицу fees в club.db с полем amount, добавьте четыре суммы и выведите число строк, сумму, минимум и максимум.

Добавьте условие WHERE amount >= ? с порогом 50 и выведите SUM только по подходящим строкам.

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