我想找出以周为基础的CON列的总和,不是每月的第几周,而是从第一次约会开始,

o8x7eapl  于 2022-09-18  发布在  Java
关注(0)|答案(1)|浏览(140)

ID|Date|Drug_id|条件
-|-|
1|2019-12-07|药品|100
1|2019-12-08|药品|100
1|2019-12-9|药品|100
1|2019-12-10|药品|100
1|2019-12-11|药品|100
1|2019-12-12|药品|100
1|2019-12-13|药品|100
1|2019-12-14|药品|100
1|2019-12-15|药品|100
1|2019-12-16|药品|100
|2020-01-06|药品|100
|2020-01-07|药品|100
|2020年01月08日|药品|100
|2020年01月9日|药品|100
|2020年01月10日|药品|100
|2020-01-11|药品|100
|2020-01-12|药品|100
|2020年01月13日|药品|100
|2020年01月14日|药品|100
|2020年01月15日|药品|100
1|2020年06月08日|药品|100
1|2020年06月08日|药品|100
1|2020-06-09|药品|100
1|2020-06-09|药品|100
1|2020-06-10|药品|100
1|2020-06-10|药品|100
1|2020-06-11|药品|100
1|2020-06-11|药品|100
1|2020-06-12|药品|100
1|2020-06-12|药品|100
1|2020-06-15|药品|100
1|2020-06-15|药品|100
1|2020-06-16|药品|100
1|2020-06-16|药品|100
1|2020-06-17|药品|100
1|2020-06-17|药品|100
1|2020-06-18|药品|100
1|2020-06-18|药品|100
1|2020-06-19|药品|100
1|2020-06-19|药品|100
1|2020-07-06|药品|100
1|2020-07-06|药品|100
1|2020年07月07日|药品|100
1|2020年07月07日|药品|100
1|2020年07月8日|药品|100
1|2020年07月8日|药品|100
1|2020-07-9|药品|100
1|2020-07-9|药品|100
1|2020-07-10|药品|100
1|2020-07-10|药品|100
1|2020-07-13|药品|100
1|2020-07-13|药品|100
1|2020-07-14|药品|100
1|2020-07-14|药品|100
1|2020-07-15|药品|100
1|2020-07-15|药品|100
1|2020-07-16|药品|100
1|2020-07-16|药品|100
1|2020-07-17|药品|100
1|2020-07-17|药品|100
1|2020年08月6日|药品|100
1|2020年08月6日|药品|100
1|2020年08月7日|药品|100
1|2020年08月7日|药品|100
1|2020年08月10日|药品|100
1|2020年08月10日|药品|100
1|2020年08月11日|药品|100
1|2020年08月11日|药品|100
|2020年08月12日|药品|100
|2020年08月12日|药品|100
1|2020-08-13|药品|100
1|2020-08-13|药品|100
|2020年08月14日|药品|100
|2020年08月14日|药品|100
1|2020-08-17|药品|100
1|2020-08-17|药品|100
1|2020年08月18日|药品|100
1|2020年08月18日|药品|100
1|2020-08-19|药品|100
1|2020-08-19|药品|100
1|2020年09月08日|药品|100
1|2020年09月08日|药品|100
1|2020年09月9日|药品|100
1|2020年09月9日|药品|100
1|2020-09-10|药品|100
1|2020-09-10|药品|100
1|2020-09-11|药品|100
1|2020-09-11|药品|100
1|2020-09-14|药品|100
1|2020-09-14|药品|100
1|2020-09-15|药品|100
1|2020-09-15|药品|100
1|2020-09-16|药品|100
1|2020-09-16|药品|100
1|2020-09-17|药品|100
1|2020-09-17|药品|100
1|2020-09-18|药品|20
|1|2020年09月18日|药品|100
1|2020-09-21|药品|100
1|2020-09-21|药品|20
1|2020-10-23|药品|100
1|2020-10-23|药品|20
1|2020-10-26|药品|100
1|2020-10-26|药品|20
1|2020-10-27|药品|100
1|2020年10月27日|药品|20
1|2020-10-28|药品|20
1|2020-10-28|药品|100
1|2020-10-29|药品|100
1|2020-10-29|药品|20
1|2020-10-30|药品|100
1|2020-10-30|药品|20
|2020年11月2日|药品|100
|2020年11月2日|药品|20
|2020年11月3日|药品|100
1|2020年11月3日|药品|20
1|2020年11月4日|药品|100
1|2020年11月4日|药品|20
|2020-11-05|药品|100
1|2020年11月5日|药品|20
|1|2020年11月23日|药品|100
1|2020-11-23|药品|20
1|2020年11月24日|药品|20
|1|2020年11月24日|药品|100
1|2020年11月25日|药品|20
|1|2020年11月25日|药品|100
|1|2020年11月27日|药品|100
1|2020年11月27日|药品|20
|2020年11月30日|药品|100
1|2020年11月30日|药品|20
|2020年12月1日|药品|100
|2020年12月1日|药品|20
|2020年12月2日|药品|100
|2020年12月2日|药品|20
1|2020-12-03|药品|100
1|2020年12月3日|药品|20
1|2020年12月4日|药品|100
1|2020年12月4日|药品|20

例如,如果第一个日期是2010年1月1日。从这个日期开始,我想分组到星期,也就是开始日期+6 07/01/2010,它们是08/01/2010到14/01/2010。求CON列的总和。

l3zydbqr

l3zydbqr1#

对于每个记录,您可以计算日期和第一个日期之间的天数(min(日期))。如果你把这个天数除以7,你会得到与第一周相抵的周数。按此偏移量分组,您就完成了。

SELECT floor(datediff(`Date`, min_date) / 7) as week,
       sum(`Con`) as con_sum
  FROM cons, (SELECT min(`Date`) as min_date FROM cons) md
 GROUP BY week;

当然,您也可以获得每周的开始日期。只需将week乘以7,然后将天数加到min(日期)即可。

SELECT date_add(min_date, INTERVAL 7 * floor(datediff(`Date`, min_date) / 7) DAY) as start_of_week,
       sum(`Con`) as con_sum
  FROM cons, (SELECT min(`Date`) as min_date FROM cons) md
 GROUP BY start_of_week;

这些示例是用MySQL语法给出的,因为您同时标记了SQL-Server和MySQL。这是一个fiddle

相关问题