結果セットがあるとしましょう...次のように出力する必要があります。
ID Count
1 5
1 5
1 5
1 5
1 5
2 2
2 2
3 1
前もって感謝します。
結果セットがあるとしましょう...次のように出力する必要があります。
ID Count
1 5
1 5
1 5
1 5
1 5
2 2
2 2
3 1
前もって感謝します。
クエリの意味は次のとおりです。
SELECT ID, COUNT(*) AS "Count"
FROM tableX
GROUP BY ID ;
これを生成します:
ID Count
1 5
2 2
3 1
しかし、あなたはこれが欲しいですか?:
ID Count
1 5
1 5
1 5
1 5
1 5
2 2
2 2
3 1
次に、このクエリは次のことを行います。
SELECT grp.ID, grp."Count"
FROM
tableX AS t
JOIN
( SELECT ID, COUNT(*) AS "Count"
FROM tableX
GROUP BY ID
) AS grp
ON grp.ID = t.ID ;
ほとんどすべての DBMS と SQL-Server のすべてのバージョンで動作します。SQL-Server バージョン 2005 以降 (および Oracle と Postgres の場合) では、OVER
句を使用した回答がよりエレガントに見え、好まれる可能性があります。あなたのバージョンでどちらがより効率的かをテストしてください。OVER
2012年版では、句を使ったクエリがかなり効率的だと思います。