sql - 选择日期时间并按日期时间查询分组
问题描述
我有一个查询,它在哪里获得每月每天的最大值。我想要做的是也得到结果的时间而不仅仅是日期。
SELECT convert(date,a.time) AS monthly, MAX(a.Va) AS monthlyVA, MAX(a.vb) AS monthlyVB
FROM tbl_sample a
WHERE DATEPART(month, a.time) = 10 and DATEPART(year, a.time) = 2018
GROUP by convert(date,a.time)
结果我得到:
我上面得到的结果是正确的,但我还想查看时间,而不仅仅是每月列中的日期。列时间的数据类型已经是日期时间。如果我只选择时间,这就是结果。我想要得到的只是显示日期和时间的每月一天的最大数据。
SELECT a.time AS monthly, MAX(a.Va) AS monthlyVA, MAX(a.vb) AS monthlyVB
FROM tbl_sample a
WHERE DATEPART(month, a.time) = 10 and DATEPART(year, a.time) = 2018
GROUP by time
解决方案
使用row_number()
窗口功能。partition by
dateadd(day, datediff(day, 0, a.time), 0)
将按天为您提供号码。Va
在这里,我假设您想要基于以下最大值的行Vb
SELECT *
FROM
(
SELECT *,
rn = row_number() over (partition by dateadd(day, datediff(day, 0, a.time), 0)
order by a.Va desc, a.Vb desc)
FROM tbl_sample a
WHERE DATEPART(month, a.time) = 10 and DATEPART(year, a.time) = 2018
) d
WHERE d.rn = 1
推荐阅读
- go - 在模板中使用表格
- python - Pandas DataFrame Groupby 如何将组作为列表获取并获取特定列的平均值
- json - 邮递员:从邮递员 POST 请求中接收语法错误
- typescript - 打印数字而不显示打印机预览
- reactjs - 我想在公共文件夹内的 Visual Studio 代码中找到该文件
- c# - 无法发布活动。未经授权
- c++ - 计算二分查找函数中的比较
- r - 识别 R 中缺少日期的组
- typescript - Typescript 将 const 对象数组转换为类型化索引查找对象
- django - 'str' 对象没有属性 '_meta' 没有密码的 django 登录设置