标题:这个问题可以用SQL 实现吗?
只看楼主
petertang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-12-12
结帖率:0
已结贴  问题点数:20 回复次数:1 
这个问题可以用SQL 实现吗?
表很简单.就三列

ID, Date, Comment

 ID 这列很长,许多ID#是重复出现的. Date 这列就是对应没个ID, 许多也是重复出现.

我想在COMMENT 这列实现对每ID,如果对应日期那列,不同的日期出先三次或以上,就是"
YES" ,否则就是"NO".

举个例子,假如ID 222, 有30行.但对应日期那拦只有04/15/2017, 04/18/2017 这俩个
 日期.那么22对应的COMMENT 都是"NO". 如果出现三不同个日期,就是"YES"


好像用SELF JOIN 可以?
搜索更多相关主题的帖子: SQL Comment 出现 对应 日期 
2017-12-12 00:12
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:20 
分别统计2次,就可以了.
ID,Date,Comment
1,04/05/2017,''
1,04/05/2017,''
1,04/05/2017,''
2,05/05/2017,''
2,06/05/2017,''
2,07/05/2017,''
2,08/05/2017,''
2,05/05/2017,''
select id,date,count(1) as cnt from 表 group by id,date
-- 结果
id,date,cnt
1,04/05/2017,3
2,05/05/2017,2
2,06/05/2017,1
2,07/05/2017,1
2,08/05/2017,1
select id,count(1) as cnt2 from 表 group by id
-- 结果
id,date,cnt2
1,1
2,4
把上面的2步组合起来,
update 表 set
from 表 a,(select id,coment =(case when b.cunt >=3 then 'yes' else 'no' end) from (select id,count(1) as cnt2 from (select id,date,count(1) as cnt from 表 group by id,date) group by id)b)c
where a.id=c.id


2017-12-12 13:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483311-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.289975 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved