2017-06-11 20 views
2

私は本当にあなたの助けが必要です。私はpostgresを使用して、私はメンバーが離れているグループの数のカウントを取得する内部結合SQLクエリがあります。ポストグラムの最大値とカウントを持つ値を取得

結果は、私はそれが同じ値を持つ場合、それは、1行または2行することができ、最も高い値を持つ行を取得する必要が

antal  fornamn 
3   Anna 
2   Sara 
3   Lisa 
1   Peter 

です。私は、MAXを使用しようとしましたが、私は、私はMAXを入れていたかわからない結果だけで

antal 
3 

を1行と列を持って、私にそれを望んでいたようにそれは動作didntの。私はこれを試みたが、それはあなたが窓/ランキング機能を使用することができます

SELECT COUNT(traningsgruppid) AS antal, medlem.fornamn 
FROM traningsgrupprad 
INNER JOIN medlem ON traningsgrupprad.medlemsid = medlem.medlemsid 
WHERE antal = (SELECT MAX(antal) FROM traningsgrupprad) 
GROUP BY medlem.fornamn 

答えて

0

仕事didntのSQLクエリは、これまで

SELECT COUNT(traningsgruppid) AS antal, medlem.fornamn 
FROM traningsgrupprad 
INNER JOIN medlem ON traningsgrupprad.medlemsid = medlem.medlemsid 
GROUP BY medlem.fornamn 

ある結果が、この場合に

antal  fornamn 
3   Anna 
3   Lisa 

になりたいです:

SELECT m.antal, m.fornamn 
FROM (SELECT COUNT(*) AS antal, m.fornamn, 
      RANK() OVER (ORDER BY COUNT(*) DESC) as seqnum 
     FROM traningsgrupprad t INNER JOIN 
      medlem m 
      ON t.medlemsid = m.medlemsid 
     GROUP BY m.fornamn 
    ) m 
WHERE seqnum = 1; 

I COUNT(traningsgruppid)COUNT(*)に置き換えました。「id」と呼ばれるものは通常NULLではないため、2つは同等です(後者は入力しやすい)。

+0

ありがとうございます!できます。 – LundI

関連する問題