2016-04-13 8 views
-1

1つの列(メッセージ)で異なる結果を得ようとしています。試しましたSQLサーバー内の複数の列に異なるアプリケーションを適用する

SELECT DISTINCT 
    [id], [message] 
    FROM Example table 
GROUP BY [message] 

しかし、それは望ましい結果を示していません。 どうすればいいですか教えてください。

例テーブル:

id | Message  | 
    -- ------------ 
    1 | mike  | 
    2 | mike  | 
    3 | star  | 
    4 | star  | 
    5 | star  | 
    6 | sky  | 
    7 | sky  | 
    8 | sky  | 

結果テーブル:あなたは一意で、他の列に集約関数を使用する列によって

id | Message  | 
-- ------------ 
1 | mike  | 
3 | star  | 
6 | sky  | 
+1

使用 'max'または' min'は、id列に使用します。 –

+0

googleとSQLのGROUP BY句について学んでください。また、投稿したクエリを実行したときに表示されるエラーメッセージもGoogleに報告してください。 –

+0

_代わりにエラーが発生したため、「希望の結果が表示されません」_いいえ、かなり意味があります。 1つの列で 'Group By'を使うことはできませんが、2つの列を選択することはできません。すべての 'Message'グループに複数の' Id'を入れることができますが、あなたは1つしか見たくないと考えてください。 Sql-Serverは、どちらがどれかを知りたい。したがって、 'Group By'の一部ではない列に対して' Min'、 'Max'または他の集約関数を使用してください。 –

答えて

2

グループ。あなたはすべてのメッセージの最安idをしたいので、MIN()

select min(id) as id, 
     message 
from your_table 
group by message 
+0

この回答の論理の重複しない重複:http:// stackoverflow。 com/a/9903573/1507566 –

+0

全く関係ありません。 –

関連する問題