0

私のテーブルには、名前のリスト、電子メール アドレス、およびリファラーと呼ばれる列があります。ユーザー名と電子メールは、コンテストのテーブルに複数回入力されます。リファラー列は、競技者がコンテストについてどのように知ったかを示します。

リファラーがそれぞれのレコードを 1 つだけ選択するかwebどうかを示す競技者のレコードセットを取得するにはどうすればよいですか? emailたとえば、出場者は 10 回アンダーemailと 100 回アンダーにエントリーできますweb。私がやろうとしているのは、各レコードのインスタンスを 1 つだけ取得することです。

これは私の現在のクエリです:

select * from table_contestants 
where referrer IN ('email', 'web') GROUP BY email order by referrer;

もちろん、それを使用すると、またはGROUP BYが見つかったかどうかに関係なく、レコードの 1 つのインスタンスしか得られません。emailweb

を削除するGROUP BYと、すべてのインスタンスが表示されますが、これは大量です...

emailと の両方を持つ各競技者の 1 つのレコードを取得するクエリを作成するにはどうすればよいwebですか?

4

2 に答える 2

0

DISTINCTを使用するだけです...

select distinct(referrer) as user from table_contestants 
where referrer IN ('email', 'web') GROUP BY email order by referrer;
于 2013-07-31T16:33:23.877 に答える