sql - 来自不同表的日期范围之间的平均列
问题描述
所以我确定这里有一个简单的解决方案,但我无法让它工作。我目前有两个结构如下的表:
Table 1 Table 2
Name Date x y z Name Date
John 03/11 91 15 3 Mary 05/26
Mary 05/25 95 10 1 John 08/15
John 08/14 89 13 5
John 08/15 85 11 4
我希望能够获得每个人的每列 (x,y,z) 的平均值,其中表 1 中的日期在表 2 中的日期之前的 7 天内。即它应该平均第 2 和第 3 John 的条目和 Mary 的条目。我努力了:
SELECT avg(x), avg(y), avg(z)
FROM table1
Where table1.Date
in(SELECT * FROM table2 WHERE table1.date BETWEEN table2.date AND table2.date - DATEADD(day, 7, table2.date)
GROUP BY table1.Name = table2.Name
任何帮助将不胜感激。
解决方案
我认为这应该给出预期的结果。我假设它是 SQL 服务器,所以它可以在 SQL 服务器中工作
SELECT t.name,avg(x), avg(y), avg(z)
FROM table1 t
Where exists
(select 1 from table2 t2 where t2.name = t.name and t.date between dateadd(day, -7, t2.date) and t2.date )
GROUP BY t.name
推荐阅读
- puppeteer - 如何处理 puppeteer js 中的随机弹出窗口
- ios - 如何使用 Swift 4.2 和 Xcode 11.3 将视频分享到 Instagram 订阅源?
- java - Java中泛型类的未经检查的赋值
- python - 在 pytorch 模型中获取权重和偏差并将其复制到另一个模型中的类似层的正确方法是什么?
- javascript - 来自 map 函数内部 props 的访问方法
- laravel - 修改/添加/重命名 eloquent 集合
- html - 如何让我的 div 随内容缩放?
- vue.js - 在 NuxtJS 应用程序中覆盖 Tailwind CSS @apply 指令
- css - CSS:传单标记边框保持显示为不良效果
- reactjs - TypeError:react_1.forwardRef 不是函数