2011-09-28 32 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 
---------------- 

私は "見てみたいと思い、この場合ので、カウントの合計を取得したいのですが1412 '、または新しい列では、実際には問題になりません。

アドバイスはありますか?私はこれにサブクエリを適用しようとしましたが、適切な解決策を見つけることができませんでした。

乾杯

答えて

4

selectステートメントでは、これは動作する(テストされていません)。

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は何が必要ですか?端部に1つの行に

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; 

ジョン・ブリリアント