sql - 如何获取一组(Day'sworth)数据的 MAX 值的小时?
问题描述
假设我已经计算了一天内销售的最大水果数量(存储在值列中)。我需要知道这个最大值出现的 time_of_day(即下午 3:00)。我怎么能做到这一点而不必按 time_of_day 分组(因为这会导致分组失败)。下面是我将开始使用的示例:
Value Data_date Name Hour
7 7/17/2018 A 2:00 AM
15 7/17/2018 A 4:00 AM
25 7/17/2018 A 7:00 PM
55 7/18/2018 B 1:00 AM
17 7/18/2018 B 4:00 AM
以下是我想要的:
MAX(Value) Data_date Name Hour
25 7/17/2018 A 7:00 PM
55 7/18/2018 B 1:00 AM
以下是我尝试过的:
select max(value)
, data_date
, name
, hour
from table
group by value, grouping sets(data_date, name), grouping sets(hour, name);
根据我在网上挖掘的内容,我认为我将不得不按组分组,但不确定我需要在哪些组上分组......
提前致谢!
解决方案
您可以使用 :
select t.*
from table t
where value = (select max(t1.value)
from table t1
where t1.name = t.name and
t1.data_date = t.data_date
);
但是,您也可以使用row_number()
函数:
select t.*
from (select *, row_number () over (partition by name, data_date order by value desc) as seq
from table t
) t
where seq = 1;
推荐阅读
- angular - 未根据 ngModel 选择值进行选择
- r - 基于用户输入的颜色映射多边形
- php - PHP AJAX 文件上传(大文件)
- ubuntu - 如何在我的 Ubuntu 服务器上的文件夹中下载文件(图像)?
- kotlin - 致命错误:glibc 在使用 kotlin-native 时检测到无效的 stdio 句柄
- python - kivy 平台在 macOS 上无法获得预期行为有什么问题?
- javascript - 使用 d3.js 在包含的 DOM 树中选择一个元素
- ruby-on-rails - rails 范围在数组中搜索
- wpf - AvalonDock 文档菜单下拉主题颜色
- wordpress - 在 Wordpress 的同一域下添加新的非 wordpress 网站