2017-08-23 7 views
0

org_idに応じて人数を取得しようとしています。postgressqlの特定の列によるグループ

私の人々には10人の異なる組織から来ています。

私は、リストされた各レコードで別々に働いている人を数えたいと思います。

ここをクリックしてSQL Fiddleリンクをクリックして、私が何をしようとしているのかを確かめてください。

Postgresのバージョン9.4

以下は私のテーブルのレコードです:

id person_name  emp_id org_id 
1 John Mackenzie TTT104 1 
2 Raven Raid  TTT105 1 
3 Albert Pinto TTT106 2 
4 Albert Pinto1 TTT119 2 
5 Ram Raman  TTT108 2 
6 Huge Jackman TTT109 2 
7 Peter Pan  TTT107 2 
8 Albert Pinto2 TTT106 2 

RESULTが予測:私は私のレコードは私のVelocityテンプレートで見たい画像に示すように

id person_name  emp_id count(org_id) 
1 John Mackenzie TTT104 2 
2 Raven Raid  TTT105 2 
3 Albert Pinto TTT106 6 
4 Albert Pinto1 TTT119 6 
5 Ram Raman  TTT108 6 
6 Huge Jackman TTT109 6 
7 Peter Pan  TTT107 6 
8 Albert Pinto2 TTT106 6 

enter image description here

0123あなたは、各個別のORG_IDで働く人々の数を集めているこのクエリと基本的に

SELECT org_id, count(*) 
FROM person 
GROUP BY org_id; 

答えて

0

結果を収集しながら、あなたあなたが探している解決策は次のとおりです。クエリの

結果は、その後、次のとおりです。

rg_id | count 
------------- 
1  | 2 
2  | 6 
+0

私はレコードを取得しようと、各レコードの前で午前のカウントをしたいですorg_id。 – SushantParkhe

+0

あなたが宣言したデータから期待する結果を質問に書くことができますか? – Nano

+0

正確な内容で質問を更新しました。レコードを見たいのですが。 – SushantParkhe

0

問題を解決するために、以下のようにクエリを実行します。

SELECT p.person_name, 
     p.emp_id, 
     count(p.org_id) OVER w as org 
FROM person p WINDOW w AS (PARTITION BY org_id); 
関連する問題