CREATE TABLE A
(
Id NUMBER(10),
Name varchar(5),
Rq DATE
)
数据如下
Id Name Rq
1 A 2020-03-01
2 A 2020-03-31
3 A 2020-04-01
4 A 2020-04-05
5 B 2020-03-21
6 B 2020-03-26
7 C 2020-03-28
8 C 2020-03-30
9 C 2020-04-02
10 C 2020-04-03
11 D 2020-03-29
12 D 2020-03-31
13 D 2020-04-07
我的需求是输入起止日期,比如20200228,20200406,取出10天以内出现三次以上的数据,期望显示的数据如下
2 A 2020-03-31
3 A 2020-04-01
4 A 2020-04-05
7 C 2020-03-28
8 C 2020-03-30
9 C 2020-04-02
10 C 2020-04-03
求各位大神给个sql,baidu查了半天,也没个头绪
这个是mysql的,改改对应的函数就行啦
select sum(id), substring(gmt_create, 1, 10)
from sys_log
where gmt_create BETWEEN STR_TO_DATE('2020-04-07','%Y-%m-%d') and STR_TO_DATE('2020-04-11','%Y-%m-%d')
group by substring(gmt_create, 1, 10)
HAVING sum(id) > 7
Mysql版本
SELECT * from A where Name in
(
select Name
from A
where Rq BETWEEN cast('20200328' as date) and cast('20200406' as date)
group by Name
HAVING count(*) >=3)