2011-09-28 8 views
7

나는 MySQL에 관한 특별한 질문을 가지고있다. 쿼리에서 모양과 결과는 아래 설정하십시오 :MySQL COUNT(), SUM(), GROUP BY

SELECT COUNT(c.Population) AS c, c.City AS cc 
FROM City c 
GROUP BY c.City 
ORDER BY c.City; 

261 | Bristol 
---------------- 
910 | London 
---------------- 
241 | Manchester 
---------------- 

내가 '보고 싶어요이 경우에, 그래서 카운트의 SUM을 좀하고 싶습니다 1412 '또는 다음 열에 새 열에 입력해도 문제가되지 않습니다.

어떤 조언이 필요합니까? 이 서브 쿼리를 적용하려고했지만 적절한 솔루션을 찾을 수 없습니다.

건배

답변

4

선택 성명에서이 작동합니다 (테스트되지 않은).

SELECT 
    COUNT(c.Population) AS c, 
    c.City AS cc, 
    (SELECT COUNT(c.Population) FROM City) as TotalPop 
FROM City c 
GROUP BY c.City 
ORDER BY c.City; 
+0

브릴리언트. 고마워. – Tamas

7

WITH ROLLUP은 필요한 것을 수행합니까? 마지막에 하나의 행에

SELECT 
     COUNT(c.Population) AS c, 
     c.City AS cc 
FROM City c 
GROUP BY c.City 
WITH ROLLUP; 
0

: c.City BY

SELECT * 
    FROM 
(
    SELECT 0 as total 
     , COUNT(c.Population) AS c 
     , c.City AS cc 
     FROM City c GROUP BY c.City 

    union 

    SELECT 1 as total 
     , COUNT(c.Population) AS c 
     , null AS cc 
     FROM City 
) myquery 
ORDER BY total 
     , city 

ORDER;

0

간단한 UNION;

select count(d.Population) as c, 'TOTAL' as cc from City d 

union 

SELECT COUNT(c.Population) AS c, c.City AS cc 
FROM City c 
GROUP BY c.City 
ORDER BY c.City;