2016-11-12 16 views
0

DBに3つ以上のレコードを持つすべてのユーザーを取得したいが、同じ日付を持つことはできません。例テーブル:ここからそう異なる日付のSELECTレコードSQL

User1 40 12/11/15 
User1 33 13/11/16 
User1 23 04/09/16 
User2 21 30/09/16 
User3 12 12/11/16 
User3 54 12/11/16 
User3 99 04/09/16 

は、私は、User1が唯一、ユーザー3は3つのレコードを持って取得したいのですが、それらの2が同じ日にあることから、彼は資格はありません。 (異なる日付に少なくとも3つのレコードがある場合は、同じ日に2つ以上のレコードがある場合は問題ありません。したがって、別の日付のuser3のレコードを1つ追加すると、要件を満たします。

これは、これまでのところ、私のクエリです:

SELECT id, price, date 
FROM Table 
WHERE id 
IN (

SELECT id 
FROM Table 
GROUP BY id 
HAVING COUNT(ocust) >=3 
) 

しかし、私は明確な日付の要件の世話をする方法がわからない、3以上のレコードを持つことが要件の世話をします。

答えて

1

は、あなただけのdateCOUNTDISTINCTを追加し、(それが何であれ)ocustを変更する必要があります。

SELECT id, price, date 
FROM Table 
WHERE id 
IN (
    SELECT id 
    FROM Table 
    GROUP BY id 
    HAVING COUNT(DISTINCT date) >=3 -- Added DISTINCT, changed 'ocust' to 'date' 
) 
関連する問題