2016-03-25 11 views
1

重複しているテーブルの列を表示する必要があります。現在私はMIN()とMAX()を使って結果を見ることができます。しかし、それは信頼できません(レコードは2回以上出現する可能性があります)。別のレコードではMAX以外のすべてのレコードを表示している最中に、どのレコードを1列に表示できますか?クエリでNOT MAX()であるレコードを選択する方法

検索結果の例。

私の現在のカラム構造:

200 111 
200 111 
300 111 
300 111 
400 111 
400 111 

私はそれを見てみたい方法は、基本的には、次のとおりです。

Records. Max value for records  
200   400 
200   400 
300   400 

現在、私は私を与えること

Select MIN(Id), MAX(ID) 
From table 
Group by ANOTHERID 
HAVING COUNT(*) > 1 

このクエリを使用することができます。

200 400 

しかし、結果に必要な300は含まれていません。私はMAX値がグループ化されたIDの

+0

300はあなたのサンプルデータには重複がありません。 'count(*)> 1'の条件に合わない。 –

+0

が編集されました。申し訳ありませんでした。 – Lynx

+0

あなたはこの列でグループ分けされているので、対応する 'ANOTHERID'値を投稿してください。 –

答えて

1

に基づいているかを決定することができる方法

はこれを試してみてください:

SELECT 
    ID AS NON_MAX_VALUES, (SELECT MAX(ID) FROM TABLE) AS MAX_VALUE 
FROM 
    TABLE 
GROUP BY 
    ID 
HAVING 
    COUNT(*)>1 
    AND 
    ID NOT IN (SELECT MAX(ID) FROM TABLE) 
+0

同様に試してみると、結果はゼロです。基本的な視点から見ると、なぜこれがうまくいかないのか分かりません。初期ID選択でもMAX値が選択されているからです。 – Lynx

+0

@Lynx、私は私のローカルシステムでこれをテストしました。あなたが望むようにうまくいきます –

関連する問題