0

このデータを含むテーブルが与えられた場合:

   L    |    N
-------------------
   A    |    1
   A    |    3
   A    |    5
   B    |    5
   B    |    7
   B    |    9
   C    |    1
   C    |    2
   C    |    3

これを実現する洗練されたSQLクエリを記述します。

1、2、および3のすべてを含む文字(L)を検索

期待される結果は明らかです。「C」を含む単一の行

誰かが解決策を持っていますか?いいえ、これはCSの宿題の質問ではありません。解決策を見つけるためにSQLクエリをどのように作成するのか興味があります。

よろしくお願いします、ダニエル

4

2 に答える 2

7
select L
from MyTable
where N in (1,2,3)
group by L
having count(distinct N) = 3

SQLフィドルの例

于 2012-09-26T15:23:17.613 に答える
0


Messierもできますが、通常は高速
です。Lのこのルートは、100,000を超えるように大きく、パフォーマンスの問題が発生していました。

select     L from mytable where N = 1
 intersect
select     L from mytable where N = 2
 intersect
select     L from mytable where N = 3
于 2012-09-26T18:48:19.263 に答える