2017-04-12 6 views
0

私は、データセットを取られ、私が欲しいのイベントにそれをフィルタリングするために、次のクエリを実行している:私はこれを行うとSQLで別のイベントの直後に出現をカウントするにはどうすればよいですか?

SELECT player_id, team_id, pbp_id, event_desc_id 
FROM GamsetPBP 
WHERE event_desc_id = '2FGM' OR event_desc_id = '3FGM' OR event_desc_id = '2FGA' OR event_desc_id ='3FGA' OR event_desc_id = 'O'; 

が、それはこれらのイベントのすべてのインスタンスを示しています。私は、2FGM、3FGM、2FGA、または3FGAがpbp_idに基づいて 'O'イベントの2つのイベント内で発生するすべてのインスタンスをカウントしたいと思います。

したがって、 'O'のpbp_idが45で、 '2FGM'のpbp_idが47であれば、それを数えたいと思っています。私がどのようにこのような範囲内でオカレンスを数えることができるかに関する提案?私はこのクエリを使用することができます理解して何から

+0

(1)あなたは同じプレイヤーまたはのためのイベントをカウントしますか同じチームでも、テーブル全体でも(それほど意味をなさない) (2)あなたのテーブルの主キーは何ですか? (3)サンプルデータとそのデータの出力を提供できますか? (4)47と45とは何が関係していますか? – trincot

+0

mySQL? SQLServer、Oracle、DB2?どのエンジンとバージョン? – xQbert

答えて

0

SELECT  COUNT(DISTINCT a.pbp_id) 
FROM  GamsetPBP a 
INNER JOIN GamsetPBP b 
     ON b.pbp_id BETWEEN a.php_id + 1 AND a.php_id + 2 
     AND b.event_desc_id IN ('2FGM', '3FGM', '2FGA', '3FGA') 
     -- ... any other join conditions on player_id? team_id? 
WHERE  a.event_desc_id = 'O'; 

これは、1つまたはそれ以上2であるIDとそれを次のイベントを持っている「O」イベントの数をカウントし、持っています'2FGM'、 '3FGM'、 '2FGA'、または '3FGA'のタイプがあります。当然のことながら、次の2つのクエリがありますが、上記のクエリでは1つのインスタンスとしてカウントされます。

このような「倍数」を別々に数えたい場合は、単語DISTINCTを削除してください。

あなたのコメントから、2つのレコード(「O」を含むものと他のタイプのもの)は同じチームに所属し、チームごとに数えられることが明らかになりました。その場合

joinでチームの条件を追加し、チームのIDを選択し、それによってグループと数によって順:

SELECT  a.team_id, 
      COUNT(DISTINCT a.pbp_id) 
FROM  GamsetPBP a 
INNER JOIN GamsetPBP b 
     ON b.pbp_id BETWEEN a.php_id + 1 AND a.php_id + 2 
     AND b.event_desc_id IN ('2FGM', '3FGM', '2FGA', '3FGA') 
     AND b.team_id = a.team_id 
WHERE  a.event_desc_id = 'O' 
GROUP BY a.team_id 
ORDER BY 2 DESC; 
+0

これは合計発生回数をカウントするのに役立ちましたので、ヒントをお願いします!私の予想していた範囲内にあったデータを40,000以上から600個にまで上げました。これが発生したpbp_idインスタンスをすべてリストアウトする簡単な方法はありますか?または、具体的には、チームごとに何回発生したかを見たいと思っています.id。したがって、チームが最も多く、最低でもあった600回の出現を確認できます。 –

+0

私の答えで2番目のクエリを修正しました。チームごとにカウントし、最初に最も高いカウントでリストします。 – trincot

+0

これは完璧に機能しました。ありがとうございます。私は同様のクエリを使ってそれをプレイヤーが実行することもできました。私は助けに感謝します! –

関連する問題