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的工作原理