sql - SQL:如何分组并获取两个不同列的最大值
问题描述
这是我第一次发帖,所以我可能违反了所有格式规则。这是我的表格的一个例子
product category cost date(in julian) time(in julian)
-----------------------------------------------------------------
1 222 12 120223 125418
1 222 32 120223 125645
1 222 11 120112 145411
我正在尝试按产品和类别进行分组,并获取最近创建的成本。
举个例子,在这种情况下,我想撤回 32。我在日期和时间上都做了一个最大值,而且我相信你知道我得到的最大日期是 120223(好),但是最大时间为 145411(坏)。
如何获取最大日期记录(留下所有 120223 条记录),然后获取这些记录的最大时间?
这是我一直在努力的一个例子:
select product, category, max(date), max(time)
from t1
group by product, category
解决方案
一种方法是相关子查询:
select t1.*
from t1
where t1.time = (select max(tt1.time)
from t1 tt1
where tt1.product = t1.product and tt1.category = t1.category
);
推荐阅读
- python - 使用 Ray Tune 的不对称对抗性强化学习
- redisson - Redisson 3.16.2 不支持的协议版本 0
- python - 如何在 Ubuntu docker 镜像中安装 Python2.7.5?
- java - 如何在画布上正确使用 SWT 在 Java 中绘制 XYchart?
- docker - 如何配置代理以与其他节点通信?(码头工人)
- python - gpsd 返回不完整的设备消息
- camunda - 从 camunda DMN 获取选择性输出列
- ffmpeg - ffmpeg 如何将标头信息添加到 pcm 中?
- azure - Azure 架构实施思路
- admob - 如何在 google admob 中链接/更改已链接的应用程序?