2017-04-20 8 views
-1

私はMysqlを使用しています。私は別個の値を数えたいと思って、列名として別の値を作成します。テーブルを転置する

私は各年齢でどのように多くの人を見つけたい、この

ID Names Age 
    1 Tim 12 
    2 James 14 
    3 White 13 
    4 John 13 
    5 Annie 11 
    6 Judy 13 

のようなテーブルの学生を持っています。マイ期待される結果は次のとおりです。

11 12 13 14 
1 1 3 1 

私は、クエリを試してみました:"Select count(age), age from Students group by age;"

それが出ています:

count(age) age 
      1 11 
      1 12 
      3 13 
      1 14 

を私がテーブルに "転置" を取ることができますどのように?

+1

あなたは、アプリケーションレベルでこれを行う必要があります。 –

+0

SQLのピボット・データに関する既存のQ&Aを検索します。 –

+0

さて、私は質問を理解していません。ごめんなさい。 –

答えて

1

あなたが事前に年齢を知っている必要がありますMySQLを使用している場合:

SELECT 
    SUM(CASE WHEN (age='11') THEN 1 ELSE 0 END) AS 11, 
    SUM(CASE WHEN (age='12') THEN 1 ELSE 0 END) AS 12, 
    SUM(CASE WHEN (age='13') THEN 1 ELSE 0 END) AS 13, 
    SUM(CASE WHEN (age='14') THEN 1 ELSE 0 END) AS 14 
FROM 
    Students 
+0

属性ageが文字列の場合はどうなりますか?それは同じですか? – VICTOR

+0

stringの場合、編集したバージョンを使用します。 – zipa

+1

テーブルの変換を自動化することもできます。http://codingsight.com/pivot-tables-in-mysql/#automating – Devart

関連する問題