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

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

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

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

import java.sql.DriverManager fun main() { DriverManager.getConnection("jdbc:sqlite:stats.db") .use { connection -> connection.createStatement().use { statement -> statement.execute( """ CREATE TABLE IF NOT EXISTS loads ( id INTEGER PRIMARY KEY, kg INTEGER NOT NULL ) """ ) statement.executeUpdate( "INSERT INTO loads (kg) VALUES (10)" ) statement.executeUpdate( "INSERT INTO loads (kg) VALUES (25)" ) statement.executeUpdate( "INSERT INTO loads (kg) VALUES (15)" ) val result = statement.executeQuery( """ SELECT COUNT(*) AS cnt, SUM(kg) AS total, MIN(kg) AS light, MAX(kg) AS heavy FROM loads """ ) if (result.next()) { println(result.getInt("cnt")) println(result.getInt("total")) println(result.getInt("light")) println(result.getInt("heavy")) } } } }

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

import java.sql.DriverManager fun main() { DriverManager.getConnection("jdbc:sqlite:stats.db") .use { connection -> val result = connection.createStatement() .executeQuery("SELECT COUNT(*) AS cnt FROM loads") if (result.next()) { println(result.getInt("cnt")) } } }

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

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

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