sql查询

a表,俩字段,电话、时间,怎么查每条记录时间前365天内重复电话3次以上的记录

image.png

FineReport 用户EzRPN4213 发布于 2020-7-3 12:41
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
3
zsh331Lv8专家互助
发布于2020-7-3 13:10(编辑于 2020-7-3 13:14)
SELECT * FROM TABNAME M
INNER JOIN 
-- 365天内重复电话3次的电话号码
(SELECT DISTINCT 电话
FROM TABNAME
GROUP BY 电话
HAVING DATE_DIFF(MAX(DATE_FORMAT(时间,'%Y-%m-%d')),MIN(DATE_FORMAT(时间,'%Y-%m-%d')) < 365
AND COUNT(1) >3) N
ON M.电话 =N.电话


最佳回答
1
snrtuemcLv8专家互助
发布于2020-7-3 12:56(编辑于 2020-7-3 13:13)

select * from

(select 电话,count(时间) as 次数 from a where  DateDiff(dd,时间,getdate())<365 group by 电话)

where 次数>3

最佳回答
0
luojian0323Lv7资深互助
发布于2020-7-3 13:22(编辑于 2020-7-3 13:57)

先查询每一条记录,向前查询365天前的电话记录,如果有,计数一次,得到每一条记录前365天的电话记录次数,

再过滤次数大于3的记录.(mysql)

select b.电话,

sum((select count(时间) from a where DATEDIFF(date_format(b.`时间`,'%Y-%m-%d'),date_format(时间,'%Y-%m-%d'))>0 and `电话`=b.`电话` GROUP BY 电话))as 次数 

from a as b   


group by b.电话

having 次数>=3

image.pngimage.png

最佳回答
0
指间沙Lv6中级互助
发布于2020-7-3 13:58

是什么数据库?


  • 5关注人数
  • 486浏览人数
  • 最后回答于:2020-7-3 13:58
    请选择关闭问题的原因
    确定 取消
    返回顶部