2016-08-17 10 views
1

トレーニングセッションを完了した人のリストがあります。私は5の間隔でセッションを完了したすべての人を選択する必要があります。その人は、5,10,15,20セッションなどに達したときにだけリストを取得します。SQLの選択間隔の間

Name   Sessions 
John Smith  5 
Bill Smith  10 
Joe Smith  15 

これを行う簡単な方法はありますか私は、あなたがこのようなモジュロ演算子(%)を使用することができます

SELECT WHERE sessions = 5 OR 10 OR 15 
+0

どのバージョンのsql?あなたは基本的にちょうどモジュロ5 == 0を確認するでしょう – Dan

答えて

0

に持っているか:

SELECT Stuff FROM Table WHERE (sessions % 5) = 0 

モジュロ演算子の計算を余り。

SELECT col FROM table WHERE sessions % 5 = 0 
5

で割り切れることを意味し、ゼロの場合例えば

postgres

SELECT * 
    FROM YourTable 
    WHERE sessions % 5 = 0 
+0

驚くばかり!ありがとう! –

1

は、あなたのRDBMSからモジュロ/剰余演算子を使用します。5で割っsessionsの残りの部分はsessionsはこれを試してみてください。5.

0

に、私は彼らが行っているセッション数がHAVING 5.

SELECT P.PersonId, Count(S.SessionId) 
FROM Person P 
INNER JOIN Sesssion S ON S.PersonId = P.PersonId 
GROUP BY P.PersonId 
HAVING Count(S.SessionId) % 5 = 0 

で割り切れるどこが意味すると思うが、ここで重要なビットです。

+0

ああ - 彼が欲しいとは思わない。 彼は何らかの正規化の後に行うかもしれません。 – AntDC

関連する問題