Ограничение числа строк в выборке
Ключевое слово LIMIT обрезает набор после
сортировки. Его часто сочетают с ORDER BY,
чтобы получить верхние или нижние значения.
Первые две строки после сортировки по убыванию:
import java.sql.DriverManager
fun main() {
DriverManager.getConnection("jdbc:sqlite:top_rows.db")
.use { connection ->
connection.createStatement().use { statement ->
statement.execute(
"""
CREATE TABLE IF NOT EXISTS laps (
id INTEGER PRIMARY KEY,
ms INTEGER NOT NULL
)
"""
)
statement.executeUpdate(
"INSERT INTO laps (ms) VALUES (120)"
)
statement.executeUpdate(
"INSERT INTO laps (ms) VALUES (95)"
)
statement.executeUpdate(
"INSERT INTO laps (ms) VALUES (110)"
)
val result = statement.executeQuery(
"""
SELECT ms FROM laps
ORDER BY ms ASC
LIMIT 2
"""
)
while (result.next()) {
println(result.getInt("ms"))
}
}
}
}
Число в LIMIT можно передать параметром
в PreparedStatement, если размер страницы
приходит из программы:
import java.sql.DriverManager
fun main() {
DriverManager.getConnection("jdbc:sqlite:top_rows.db")
.use { connection ->
val query = connection.prepareStatement(
"""
SELECT ms FROM laps
ORDER BY ms DESC
LIMIT ?
"""
)
query.setInt(1, 1)
val result = query.executeQuery()
if (result.next()) {
println(result.getInt("ms"))
}
}
}
Создайте таблицу sales в market.db
с полем amount, добавьте пять сумм и
выведите три наибольших.
Выведите одну минимальную сумму, используя
сортировку по возрастанию и LIMIT 1.