首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle WITH子句和grouping by结果

Oracle WITH子句和grouping by结果
EN

Stack Overflow用户
提问于 2013-01-25 03:35:50
回答 1查看 340关注 0票数 0

我有两个表:一个产品表和一个地区表。产品表包含产品的ID和区域代码,这些代码指示产品可以在哪些国家/地区销售:

代码语言:javascript
复制
PRODUCT:

PRODUCT_ID  | TERRITORY_CODE
----------------------------
   PROD1    |       2
   PROD2    |       0
   PROD3    |       1
   PROD4    |       0
   PROD5    |       2
   PROD6    |       0
   PROD7    |       2

第二个表包含一个地区代码和允许销售的国家/地区的相应ISO代码。例如:

代码语言:javascript
复制
TERRITORY:

TERRITORY_CODE | COUNTRY_CODE
---------------------------
      0        |     US
      1        |     CA
      2        |     US
      2        |     CA

我想写一个使用COUNTRY_CODE作为关键字来计算PRODUCT_IDs数量的查询。

例如,我想知道在美国有多少不同的产品在销售。我不想知道02是包含美国的地区代码,我只想通过COUNTRY_CODE查找。我该怎么做呢?

在一些初步研究中,我发现WITH子句可能很有用,并提出了以下查询:

代码语言:javascript
复制
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的群组里。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-25 03:52:33

看起来你需要使用GROUP BY。尝试如下所示:

代码语言:javascript
复制
SELECT T.Country_Code, COUNT(DISTINCT PRODUCT_ID) 
FROM Product P
JOIN Territory T ON P.Territory_Code = T.Territory_Code
GROUP BY T.Country_Code

还有SQL Fiddle

祝好运。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14509296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档