製品テーブルと地域テーブルの 2 つのテーブルがあります。製品テーブルには、製品の ID と、製品を販売できる国を示す地域コードが保持されます。
PRODUCT:
PRODUCT_ID | TERRITORY_CODE
----------------------------
PROD1 | 2
PROD2 | 0
PROD3 | 1
PROD4 | 0
PROD5 | 2
PROD6 | 0
PROD7 | 2
2 番目のテーブル テーブルには、地域コードと、販売が許可されている国の対応する ISO コードが保持されます。次に例を示します。
TERRITORY:
TERRITORY_CODE | COUNTRY_CODE
---------------------------
0 | US
1 | CA
2 | US
2 | CA
PRODUCT_IDs
使用回数をCOUNTRY_CODE
キーにカウントするクエリを書きたいと思います。
たとえば、米国で販売されている個別の製品の数を知りたいとします。私はそれを知る必要はありません.0
と2
は米国を含む地域コードです. で検索したいだけですCOUNTRY_CODE
. これどうやってするの?
いくつかの予備調査で、WITH
句が役立つ可能性があることがわかり、次のクエリを思いつきました。
WITH country AS (
SELECT (DISTINCT COUNTRY_CODE)
FROM TERRITORY
)
SELECT COUNT(DISTINCT PRODUCT_ID)
FROM country c,
PRODUCT p
WHERE p.TERRITORY_CODE=c.TERRITORY_ID;
ただし、これでは期待した結果が得られません。でグループ化することもできませんCOUNTRY_CODE
。私は何を間違っていますか?