我有一个包含shop_id,name和promotion_code的表。我想获取每个shop_id的记录数量,但是有一些重复记录,其中多次使用promotion_code。我想忽略这些。
我试过了:
SELECT shop_id, count(*) as total_entries FROM tbl GROUP BY shop_id
这给了我正确的结构,但它确实计算了所有重复的行。所以我想我会首先尝试将它们分组在promotion_code上,然后再在shop_id上进行分组:
SELECT shop_id, count(*) as total_entries FROM tbl GROUP BY promotion_code, shop_id
但这给了我所有的零结果。
答案 0 :(得分:2)
SELECT shop_id, count(distinct promotion_code) as total_entries FROM tbl GROUP BY shop_id
答案 1 :(得分:2)
尝试:
select shop_id, count(distinct promotion_code)
from tbl
group by shop_id
答案 2 :(得分:1)
SELECT shop_id,count(*)as total_entries FROM tbl GROUP BY promotion_code,shop_id
您可以使用DISTINCT函数代替使用(*),以确保您尝试分组的所有数据都是唯一值。
你可以这样做:
%load_ext autoreload
%autoreload 2