2011-09-28 21 views
7

MySQL ile ilgili özel bir sorum var. sorguda bir göz ve sonuç aşağıda belirtilen edin:MySQL COUNT(), SUM() ve 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 
---------------- 

Ben 'görmek istiyorum Dolayısıyla bu durumda, sayımların SUM almak istiyorum 1412 'sonraki satırda veya yeni bir sütunda gerçekten önemli değil.

Herhangi bir öneri? Alt sorguları uygulamaya çalıştım ama uygun bir çözüm bulamadım.

Alkış

cevap

4

seçme açıklamada, bu çalışması gerekir (denenmemiş).

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

Parlak. Çok teşekkürler – Tamas

7

WITH ROLLUP Neye ihtiyacınız var? sonunda bir satırda

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

: c.City İLE

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 

SİPARİŞ;

0

Basit UNION ile;

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; 

John