我正在尝试显示已收到两个特定商品的商店总数。
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.
谢谢!
答案 0 :(得分: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;
子查询获取销售这两个项目的商店。外部查询计算数字。