← Назад к вопросам
Как узнать количество строк в SQL
1.0 Junior🔥 161 комментариев
#ORM и Hibernate#Базы данных и SQL
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Как узнать количество строк в SQL
Для подсчета количества строк используется агрегатная функция COUNT().
1. COUNT(*) — подсчитать ВСЕ строки
SELECT COUNT(*) FROM users;
-- Результат: 1523
Это самый быстрый способ в большинстве СУБД.
2. COUNT(column) — подсчитать НЕ-NULL значения
SELECT COUNT(email) FROM users;
-- Подсчитает только строки, где email NOT NULL
3. COUNT(DISTINCT column) — подсчитать уникальные
SELECT COUNT(DISTINCT country) FROM users;
-- Количество уникальных стран
4. С условиями (WHERE)
SELECT COUNT(*) FROM orders WHERE status = 'completed';
Java пример
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
long countByStatus(String status);
long countByEmailIsNotNull();
}
Производительность
-- Если таблица большая, COUNT может быть медленным
-- Используй индексы на фильтруемых колонках
CREATE INDEX idx_orders_status ON orders(status);
LIMIT в COUNT
Внимание: LIMIT в SELECT COUNT не работает ожидаемо
SELECT COUNT(*) FROM users LIMIT 10;
-- Вернет ПОЛНЫЙ COUNT(*), а не 10!
-- Для подсчета с лимитом используй подзапрос:
SELECT COUNT(*) FROM (
SELECT * FROM users LIMIT 10
) AS limited;
Best Practices
- Используй COUNT(*) для подсчета всех строк
- Добавляй индексы на WHERE колонки
- Кешируй результат COUNT если часто запрашиваешь
- Для больших таблиц рассмотри аппроксимацию через EXPLAIN