写在前面
最近数据表新增了两个搞事情的字段,近一个月id,近一个月出现的次数。通过mysql就可以快速实现。
开始表演
- 建表语句
create table `test1` (
`id` int(11),
`enbid` int(6),
`cid` int(6),
`abnor_id_month` varchar(50),
`abnor_count_month` int(10)
);
- 样例数据
insert into test1(id,enbid,cid) values(1,12,3),(2,12,5),
(3,1,4),(4,12,5),(5,12,5),(6,1,3)(7,1,3);
- 查询结果如下: 查询结果1.png
- 插入近一个月异常id
update test1 k left join (select a.id as w, count(b.id) as e,group_concat(b.id) as r
from test1 a left join test1 b on a.enbid=b.enbid and a.cid=b.cid and a.id !=b.id
group by a.id )l on k.id=l.w set k.abnor_id_month=l.r;
- 查询结果如下: 查询结果2.png
- 插入近一个月异常次数
update test1 k left join (select a.id as w, count(b.id) as e,group_concat(b.id) as r
from test1 a left join test1 b on a.enbid=b.enbid and a.cid=b.cid and a.id !=b.id
group by a.id )l on k.id=l.w set k.abnor_count_month=l.e;
- 查询结果如下:
查询结果3.png
写在后面
这个sql看着很简单,但是其实很有用,是一个好轮子 Best Wishes。
网友评论