0

次の表があります。

Product(maker, model, type)

メーカー-デバイスのメーカー、タイプはPC、ラップトップ、プリンター、モデルは主キーです。同じタイプのデバイスのみを製造し、複数のモデルを製造するすべてのメーカーを入手する必要があります。表示する情報はメーカー、タイプです。次のクエリがあります。

SELECT maker, type, count(*) as how_many 
FROM Product 
GROUP BY maker, type 
HAVING count(*) > 1

しかし、同じタイプのデバイスをメーカーに提供する方法がわかりません。

更新:たとえば、次のレコードがあります。

A - 01 - Printer
A - 02 - PC
A - 03 - Laptop
B - 04 - Printer
B - 05 - Printer

Bは、すべてのデバイスが同じタイプの「プリンター」を備えているため、優れたメーカーです。私はあなたを直しましたか?

4

2 に答える 2

1

これにより、必要な結果が得られると思います。

select maker, type, count(*) how_many
from product p1
group by maker, type
having how_many = (select count(type)
                   from product p2
                   where p1.maker = p2.maker
                   group by maker)

デモで SQL Fiddle を参照してください

于 2013-01-14T17:53:25.243 に答える
0

havingこれは、句を使用した単純な集計クエリです。

select maker
from product
group by maker
having count(distinct type) = 1 and count(distinct type) > 1
于 2013-01-14T18:15:26.277 に答える