2017-11-07 3 views
0

I持って、次のデータSQLのGROUPBY

メーカー | CarName |

トヨタ| | Yaris | 2017

ルノー| Clio | 2017

ルノー|ツインゴ|私はこの

メーカー私を返すクエリを探しています2015

| CarName | | メーカー数

トヨタ| | Yaris | 2017年| 1

ルノー| Clio | 2017年| 2

ルノー|ツインゴ| 2015年|

SELECT Maker, count(Maker) as MakerCount GROUP BY Maker 

これを解決する方法上の任意のヒント:唯一のメーカーの列を示す場合は2

しかし、私はそれだけでカウント列を持つことができますか?

ありがとうございました!

答えて

2

はカウントを計算サブクエリに参加:あなたはMySQLを使用していた場合

SELECT t1.*, t2.MakerCount 
FROM yourTable t1 
INNER JOIN 
(
    SELECT Maker, COUNT(*) AS MakerCount 
    FROM yourTable 
    GROUP BY Maker 
) t2 
    ON t1.Maker = t2.Maker; 

これは理にかなって。分析関数をサポートするデータベースを使用している場合は、サブクエリを避けることができます。

SELECT t.*, 
    COUNT(*) OVER (PARTITION BY Maker) MakerCount 
FROM yourTable t; 
+0

ありがとう、それは完全に動作します! – goul