mysql按字段分组,忽略特定列中的重复项

mysql按字段分组,忽略特定列中的重复项,mysql,Mysql,我有一个记录产品点击的表格。例如: productId ipv4 date flag 100 32.59.xx.xx 2015-11-29 1 100 32.59.xx.xx 2015-11-29 1 101 32.59.xx.xx 2015-11-29 1 100 64.34.xx.xx 2015-11-29 1

我有一个记录产品点击的表格。例如:

productId    ipv4            date           flag
100          32.59.xx.xx     2015-11-29     1
100          32.59.xx.xx     2015-11-29     1
101          32.59.xx.xx     2015-11-29     1
100          64.34.xx.xx     2015-11-29     1
100          64.34.xx.xx     2015-11-29     1
我需要按
productId
分组,但只计算一对
productId
-
ipv4
对。我需要忽略同一用户对产品的任何重复点击

预期结果:

productId    COUNT(*)    SUM(flag)
100          2           2
101          1           1
我将如何构造查询?

类似以下内容:

select productid, count(distinct ipv4), count(distinct ipv4, flag)
from foo
group by productId
检查sqlfiddle:

类似以下内容:

select productid, count(distinct ipv4), count(distinct ipv4, flag)
from foo
group by productId

检查sqlfiddle:

我需要一个更一般的查询,我不需要特定于此示例的解决方案。我需要获取该组中的所有字段,而不仅仅是计数。例如,另一个字段的总和,然后请提供适当的数据。除非你给我们提供足够的通用数据,否则我不能给你通用的解决方案。是的,这就是我要找的,我需要重温一下不同的工作我需要一个更通用的查询,我不需要一个特定于这个例子的解决方案。我需要获取该组中的所有字段,而不仅仅是计数。例如,另一个字段的总和,然后请提供适当的数据。除非你给我们提供足够的通用数据,否则我无法给你通用的解决方案。是的,这就是我所寻找的,我需要重新了解distinct的工作原理