Счетчик SQL не возвращает все строки, phpmyadmin добавляет LIMIT, но не показывает его в запросе
У меня есть запрос:
select lr2.event_id as ce
from data_requests as lr2
group by lr2.event_id,
это возвращает 88 строк. Тогда я попробовал следующее:
select count(lr2.event_id) as cc, lr2.event_id as ce
from data_requests as lr2
group by lr2.event_id
но он возвратил только 25 строк, так что я действительно озадачен, куда делись остальные 63 строки.
Я попробовал это в sqlfiddle, похоже, он работает правильно, но на моем сервере это просто не работает, поэтому это должен быть параметр или что-то в этом духе... Похоже, что сервер вычисляет счет после выбора подмножества всех результатов группы. странно.
3 ответа
Если вы хотите посчитать количество строк для каждого lr2.event_id
ты должен использовать count(*)
не count(lr2.event_id)
, Помните, вы считаете строки.
Функция GROUP BY
SQL
GROUP BY
пункт используется в сотрудничестве сSELECT
заявление, чтобы расположить идентичные / похожие / равные данные в группы.
демонстрация
Если у меня есть таблица, как показано ниже, то 1-й запрос даст тот же результат, что и определение таблицы:
ce
--
1
2
3
4
5
И 2-й запрос даст вывод как,
cc |ce
--- ---
1 1
1 2
1 3
1 4
1 5
Так как все distinct
в таблице я получил 5 строк! но если некоторые ce
значения повторяются как,
ce
--
1
2
1
2
2
тогда 2-й запрос выдаст результат в виде:
cc |ce
--- ---
2 1
3 2
А вот если я в шоке, куда делись остальные 3 ряда? Тогда мне нужно учиться! Конечно, это кормление ложкой! OP необходимо изучить GROUP BY в SQL.
Моя проблема, кажется, проблема phpmyadmin, я запускаю запрос в phpmyadmin, и он автоматически добавляет ограничение в конце каждого запроса