Подсчитайте количество строк в каждой группе

StackOverflow https://stackoverflow.com/questions/1015459

  •  06-07-2019
  •  | 
  •  

Вопрос

Используя класс Active Record CodeIgniter и MySQL, у меня есть таблица постов с user_id и различными другими полями, и я хочу подсчитать, сколько постов сделал каждый пользователь. Я мог бы получить строки, в которых user_id = $ what , и посчитать количество результатов, но мне пришлось бы перебирать каждый user_id и использовать этот count_all_results () запрашивать снова и снова для каждого.

Должен быть лучший способ! Если бы в каждом поле было только поле с 1 , я мог бы select_sum увеличить это поле и получить счетчик. Но это кажется глупым.

Заранее большое спасибо!

Это было полезно?

Решение

Использование активной записи должно быть:

$this->db->select('field1, ... ,fieldn, count(1) as number_elements_of_row');

$this->db->group_by(array('field_group_1', ... ,'field_group_n'));

$result = $this->db->get('mytable');

так что $ result будет иметь то, что вам нужно!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top