如何应用COUNT()列(针对每一行计算)而不使我在O(n ^ 2)中运行

时间:2018-03-14 22:02:49

标签: sql tsql soql

我有一个"点击"每次用户点击链接时记录的表。

为了保持这一点,我们假设这个表只有三列"电子邮件"," LinkId"和" ClickTime&#34 ;

我的问题是我需要在SELECT查询中添加一个计算列。此列将记录一个true或false值,指示系统是否认为点击有效。

如果表中存在两个或多个共享相同域名的条目(取自电子邮件地址),则表中的条目将被视为无效," LinkId"和" ClickTime"。

我正在尝试使用标题为"有效"的额外列提取此表中的每条记录。根据上述规范,其中包含真值或假值。

以下是我的尝试,但它不起作用,我不知道从哪里开始。

proj WGS84

1 个答案:

答案 0 :(得分:0)

简单GROUP BY会提供您想要的内容吗?

这是一个简单的例子来说明它:

with rte as 
(
 select email, linkid, clicktime, count(*) as num
 from table1
 group by  email, linkid, clicktime
 having count(*) > 2
 )
 select * from rte

此处的示例代码:http://sqlfiddle.com/#!18/cdaab/2