在oracle中将问题分组在一起

问题描述 投票:0回答:1

我试图显示已收到两个特定项目的商店总数。

SELECT DISTINCT count(stores_i), item_i
FROM all_stores  
WHERE item_i in (101, 105)
AND date_available IS NOT NULL
GROUP BY store_i, item_i
;

当我运行它时,它给了我来自商店列的每个商店(1,2,3,4 ......等),它还为我提供了一个在item_i表的每个商店旁边的商店。但是我希望它只有一个数字,表明有多少商店收到了商品101和商品105。

谢谢!

sql oracle
1个回答
1
投票

一种方法是两个级别的聚合:

SELECT COUNT(*)
FROM (SELECT store_id
      FROM all_stores  
      WHERE item_i in (101, 105) AND date_available IS NOT NULL
      GROUP BY store_id
      HAVING COUNT(DISTINCT item_id) = 2
     ) a;

子查询获得销售这两个项目的商店。外部查询计算数字。

© www.soinside.com 2019 - 2024. All rights reserved.