-1

次の演習の解決策を見つけるために助けが必要です: 私はこのテーブルを持っています:

maker   model   type
E   2010    laptop
E   1013    pc
E   1012    pc
D   2007    laptop
D   1011    pc
D   1010    pc
D   1009    pc
C   3006    printer
C   3003    printer

そして、少なくとも 700 の速度で、少なくとも 2 台の異なるコンピューター (PC) の製造元を見つける必要があります。いくつかのクエリを試しましたが、何も見つかりませんでした。このクエリを真にする方法を教えてください。

速度列は、モデル、速度、価格などを含む PC という名前の別のテーブルにあります。次のようなクエリをいくつか試しました。

select maker from product p
join pc pc on pc.model=p.model
where pc.speed>700
group by maker
having count(distinct p.model)>=2;

しかし、うまく動かず、どうすればいいのかわからない!あなたが私を助けることができれば、私はさらに感謝します!

4

2 に答える 2

1

結果を次のようにグループ化しmakerてフィルタリングします。

SELECT   maker
FROM     my_table
WHERE    type = 'pc' AND model >= 700
GROUP BY maker
HAVING   COUNT(*) >= 2

sqlfiddleで参照してください。

于 2013-10-29T16:17:54.437 に答える