Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 忽略分组依据上的重复项_Mysql_Sql_Grouping - Fatal编程技术网

Mysql 忽略分组依据上的重复项

Mysql 忽略分组依据上的重复项,mysql,sql,grouping,Mysql,Sql,Grouping,我有一个包含店铺id、名称和促销代码的表。我想获得每个店铺id的记录数量,但是有一些重复的记录,其中促销代码被多次使用。我想忽略这些 我试过: 选择店铺id,按店铺id将(*)计算为tbl组中的总条目 这为我提供了正确的结构,但它确实计算了所有重复的行。所以我想我应该试着先根据促销代码,然后根据店铺id对它们进行分组: 选择店铺id,按促销代码、店铺id将(*)计算为tbl组的总条目 但这会给我所有的结果为零。试试: SELECT shop_id, count(distinct promotio

我有一个包含店铺id、名称和促销代码的表。我想获得每个店铺id的记录数量,但是有一些重复的记录,其中促销代码被多次使用。我想忽略这些

我试过:

选择店铺id,按店铺id将(*)计算为tbl组中的总条目

这为我提供了正确的结构,但它确实计算了所有重复的行。所以我想我应该试着先根据促销代码,然后根据店铺id对它们进行分组:

选择店铺id,按促销代码、店铺id将(*)计算为tbl组的总条目

但这会给我所有的结果为零。

试试:

SELECT shop_id, count(distinct promotion_code) as total_entries FROM tbl GROUP BY shop_id
尝试:

选择店铺id,按促销代码、店铺id将(*)作为tbl组的总店铺条目

您可以使用DISTINCT函数来代替(*),这样可以确保您尝试分组的所有数据都是唯一的值

你可以这样做:

选择店铺id,按店铺id将(不同的促销代码)计算为tbl组的总条目

选择店铺id,按促销代码、店铺id将(*)作为tbl组的总店铺条目

您可以使用DISTINCT函数来代替(*),这样可以确保您尝试分组的所有数据都是唯一的值

你可以这样做:


选择shop\u id,按shop\u id从tbl组中将(不同的促销\u代码)计数为总计\u条目

添加一些示例表数据和预期结果。(以及格式良好的文本。)顺便说一句,不可能为发布的Select返回零。添加一些示例表数据和预期结果。(以及格式良好的文本)顺便说一句,不可能为发布的选择返回零。
select shop_id, count(distinct promotion_code)
from tbl
group by shop_id