14

私は MS Access データベースを持っており、すべての値を保持しながら、1 つの列ですべての異なるエントリを選択できるようにする SQL クエリを作成する必要があります。

この場合、例はこれまで以上に何千語もの価値があります。

テーブル:

A B C
1 x q
2 y w
3 y e
4 z r
5 z t
6 z y

SQL マジック

結果:

B C
y w
y e
z r
z t
z y

基本的に、列 B のすべての一意の値が削除されますが、データの複数の行は保持されます。「bでグループ化」してから「count> 1」を実行して、明確ではないものを取得できますが、結果には、必要な2つ以上ではなく、Bの1行のみがリストされます。

何か助けはありますか?

ありがとう。

4

4 に答える 4

27
Select B, C
From Table
Where B In
    (Select B From Table
     Group By B
     Having Count(*) > 1)
于 2008-11-06T18:13:25.070 に答える
7

必要な結果を返す別の方法は次のとおりです。

select *
from
    my_table
where 
    B in 
    (select B from my_table group by B having count(*) > 1)
于 2008-11-06T18:05:26.990 に答える
3
select 
  * 
from 
  my_table t1, 
  my_table t2
where 
  t1.B = t2.B
and
  t1.C != t2.C

-- apparently you need to use <> instead of != in Access
-- Thanks, Dave!

そんな感じ?

于 2008-11-06T17:53:28.963 に答える
1

group by b および count > 1 で決定した B の一意の値を元のテーブルに結合して、テーブルから C の値を取得します。

于 2008-11-06T17:54:13.237 に答える