| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
雷速体育发帖软件开发QQ118000023C语言培训|一对一辅导|零基础学编程LightningChart 快速先进的.Net图表控件
共有 402 人关注过本帖
标题:这个问题可以用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 可以?
2017-12-12 00:12
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:78
帖 子:2490
专家分:6038
注 册: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 a.coment=c.coment
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







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

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