Получение суммы () COUNT () - PullRequest
3 голосов
/ 17 июня 2011

Есть ли способ в mysql достичь

SELECT COUNT( SUM(field2) ) FROM TABLE WHERE field1='value' GROUP BY field2

Возвращение одной строки с общей суммой подсчитанного поля 2.

Поле 1 && Поле 2 оба не являются уникальными.

Если есть необходимость в дополнительной информации, просто дайте мне знать.

Редактировать: Я не думал ясно.Мне нужен COUNT of COUNT.

, поэтому все подсчитанные значения из поля 2. Это может быть достигнуто путем получения количества строк, но я выбрал для этого:

SELECT COUNT( first_count ) total_count FROM 
( SELECT COUNT( field2 ) as first_count FROM TABLE
  WHERE field1='value' GROUP BY field2 )t1

Илиесть более быстрый запрос?

Ура!

Ответы [ 2 ]

5 голосов
/ 17 июня 2011

Ваше обновление

SELECT COUNT( first_count ) total_count FROM 
( 
  SELECT COUNT( field2 ) as first_count FROM TABLE
  WHERE field1='value' GROUP BY field2 )t1
)

Количество COUNT для каждого поля2, равное количеству уникальных field2s;

SELECT COUNT(DISTINCT field2) FROM TABLE WHERE field1='value'
5 голосов
/ 17 июня 2011

Я думаю, вы имеете в виду:

SELECT field2
     , field2 * COUNT(*)
FROM TABLE
WHERE field1 = 'value'
GROUP BY field2

Также:

Нет GROUPED BY.Существует: GROUP BY


После вашего обновления и уточнения, я думаю, что ваш запрос показывает то же самое с:

SELECT COUNT( DISTINCT field2 ) AS total_count
FROM TABLE
WHERE field1 = 'value'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...