← Назад к вопросам

Как узнать количество строк в 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
Как узнать количество строк в SQL | PrepBro