Подтвердить что ты не робот

Запрос MySQL - используя СУММУ COUNT

Этот запрос:

SELECT COUNT(source) AS count
FROM call_details
GROUP BY source
HAVING count >1

Возвращает около 1500 (число, которое я ищу) приводит только к полю count. Как я могу также вернуть сумму всех полей счетчика? Когда я пытаюсь

SELECT COUNT(source) AS count,
SUM(count) as total
FROM call_details
GROUP BY source
HAVING count >1

Я получаю "Неизвестный столбец" в поле "Список полей".

и

SELECT COUNT(source) AS count,
SUM(COUNT(source)) as total
FROM call_details
GROUP BY source
HAVING count >1

дает мне "Недопустимое использование групповой функции"

Любые идеи? Я могу сделать mysql_num_rows($result) первого набора (чтобы получить нужную мне информацию), но я действительно хочу сделать это через MySQL.

4b9b3361

Ответ 1

SELECT COUNT(count) FROM (SELECT COUNT(source) AS count
FROM call_details
GROUP BY source
HAVING count > 1) as A

Ответ 2

Вы не можете получить глобальную общую сумму в контексте строки. В то время, когда COUNT() завершается в любой конкретной строке, для SUM ничего нет, потому что другие строки еще не вычислены.

Сначала вы должны запустить запрос SUM, чтобы получить свою индивидуальную статистику, затем суммировать вручную в своем script или повторно запустить запрос с помощью предложения SUM:

SELECT SUM(count) FROM (
   SELECT original query here...
)

Ответ 3

Попробуйте это

select mycount, sum(mycount) as sumcount
from
(SELECT COUNT(source) AS mycount FROM call_details GROUP BY source HAVING mycount >1)   counttable 

Ответ 4

Просто удалите предложение "Group by" в запросе select, который считает

# first, get your counts by source
SELECT COUNT(source) AS count
FROM call_details
GROUP BY source
HAVING count >1

# then, get the overall total
SELECT COUNT(source) AS count
FROM call_details
HAVING count >1

Ответ 5

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