总行数表中具有相同键的行的性能

时间:2018-08-26 21:05:42

标签: mysql sql having

我需要找到表中重复日志的百分比。因此,我使用“具有”进行查询,以检查密钥是否重复。问题是在完成“具有”操作后,我丢失了所有未重复的日志。

这是桌子:

enter image description here

这是我的查询:

=NOT(ISERROR(
    QUERY({ArrayFormula(A1:A&B1:B&C1:C&D1:D)},
    "select * where Col1='"&JOIN("",F1:I1)&"'",0)
        )
     )

我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

GROUP BY使用逗号,代替AND

 SELECT count(params_advertiserId) AS duplicates 
 FROM android_clicks 
 GROUP BY params_advertiserId , app_id , date
 HAVING COUNT(params_advertiserId) > 1

答案 1 :(得分:1)

这就是你想要的吗?

select (count(*) - count(distinct params_advertiserId, app_id, date)) / count(*) as duplicate_ratio
from android_clicks ac;

您的查询不正确,因为AND用于布尔表达式。因此,GROUP BY表达式的结果为true,false或NULL

如果要计数,则将其包装为子查询:

SELECT COUNT(*) as num_duplicates
FROM (SELECT params_advertiserId, app_id, date AS duplicates 
      FROM android_clicks ac
      GROUP BY params_advertiserId, app_id, date 
      HAVING COUNT(*) > 1
     );