sql语句

newair 2003-08-28 10:18:39
想查询一组数据,在一定的范围内,比如大于1小于6,而且纪录必须是id号连续3个以上的。
如:

ID DATA

1 16
2 3
3 4
4 5
5 7
6 2
7 8
8 9
9 1
10 5
11 3
12 4
13 5
14 7

上面的data中‘2’就是不符合的,因为他虽然大于1小于6但是他不属于ID连续3个以上的数据
...全文
57 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
newair 2003-08-28
  • 打赏
  • 举报
回复
难道不相邻的几条纪录他们的ID会是连续的?

是没做过还是真看不懂呢
newair 2003-08-28
  • 打赏
  • 举报
回复
不会吧

连要从data字段查数据也看不懂么
newair 2003-08-28
  • 打赏
  • 举报
回复
我是指查询出来的结果要 大于1小于6 ID号是连续的 而且是连续3个以上的

比如说上面的id号为10,11,12,13的数据,首先大于1小于6, 再者id 10,11,12,13是连续的id号,而且id号已经是连续超过了3个 ,符合查询

但‘2’虽然大于1小于6 ,但他的id不符合:他上面和下面的纪录是7和8,已经不属于连续3条大于1小于6 所以‘2‘是不符合的

也就是说 有些数据可能是 大于1小于6 ,但查出来的id 可能是 1,3,5 等不连续的id,或者查出来的id 可能是 2,3,6,7,9 只是连续2个的也不符合
如果查出来的id是 2,3,4 或者 6,7,8,9,10,11,12 等则符合
realgz 2003-08-28
  • 打赏
  • 举报
回复
看不懂。不懂哪种记录是合格的记录 是什么东西大于1小于6,那破id怎么才算连续3个?
romail 2003-08-28
  • 打赏
  • 举报
回复
"他不属于ID连续3个以上的数据"什么意思?表述不清别人怎么帮你?
CrazyFor 2003-08-28
  • 打赏
  • 举报
回复
你的所有ID都是连续的,怎么2不连续了?
newair 2003-08-28
  • 打赏
  • 举报
回复
3,4,5 和 5,3,4,5 都是符合 需要查询出来

像 2,3 这样的虽然大于1小于6但是它们的ID虽然连续但是并没有超过3个

像 7 ,2,8,3,4,7 也是不符合的
newair 2003-08-28
  • 打赏
  • 举报
回复
面的data中‘2’就是不符合的,因为他虽然大于1小于6但是他不属于ID连续3个以上的数据
就是说必须有ID号连续在3个以上而且连续的纪录都要大于1小于6
realgz 2003-08-28
  • 打赏
  • 举报
回复
错了应该是
select * from (select * from table where data<7) t where
(select count(*) from t tx where abs(tx.id-t.id)=1)=2
or (select sum(tx2.id)%t.id from t tx2 where (tx2.id-t.id)<=2 and tx2.id>t.id)=3
or (select id-(sum(tx3.id)%t.id) from t tx3 where (tx3.id-t.id)>=-2 and tx3.id<t.id)=3
realgz 2003-08-28
  • 打赏
  • 举报
回复
我终于看懂了:选出对应 连续3个(>3)data不超过7(按id排序) 的 date。
关键只在于data,与id无关。
楼主表意不清!
select * from (select * from table where data<6) t where
(select count(*) from t tx where abs(tx.id-t.id)=1)=2
or (select sum(id)%id from t tx2 where (tx2.id-t.id)<=2 and tx2.id>t.id)=3
or (select id-(sum(id)%id) from t tx3 where (tx3.id-t.id)>=-2 and tx3.id<t.id)=3
看能不能也让你晕一个

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧