Определите общую сумму возвращенного результата - PullRequest
1 голос
/ 23 января 2012

Я бы хотел определить две вещи из одного запроса:

  1. Самый распространенный столбец в таблице
  2. Количество раз, когда такой столбец находился при запросе к таблице

Пример таблицы:

user_id      some_field
1                data
2                data
1                data

Вышеприведенное будет возвращать user_id # 1 как наиболее распространенный в таблице, и будет возвращать (2) для общего количества раз, когда оно находилось в таблице.

Я провел исследование и натолкнулся на два типа запросов.

  1. GROUP BY user_id ORDER BY COUNT (*) DESC
  2. SUM

Проблема в том, что я не могу понять, как использовать эти два запроса в сочетании друг с другом. Например, рассмотрим следующий запрос, который успешно возвращает наиболее распространенный столбец.

$top_user = "SELECT user_id FROM table_name GROUP BY user_id ORDER BY COUNT(*) DESC";

Приведенный выше запрос возвращает «1» на основе приведенной выше таблицы примеров. Теперь я хотел бы иметь возможность возвращать «2» для общего количества раз, когда user_id (1) был найден в таблице.

Возможно ли это случайно?

Спасибо

Evan

1 Ответ

0 голосов
/ 23 января 2012

Вы можете включить count(*) в список SELECT:

SELECT user_id, count(*) as totaltimes from table_name 
         GROUP BY user_id ORDER BY count(*) DESC;

Если вы хотите только первый:

SELECT user_id, count(*) as totaltimes from table_name 
         GROUP BY user_id ORDER BY count(*) DESC LIMIT 1;
...