mysql - 根据另一列的最大值选择每列值之一
问题描述
我需要根据最近的 sale_date 列返回每个 prod_numb 和 cost_amt 的记录。
基本上我需要这样的东西:
SELECT prod_numb
, cost_amt
FROM product_cost
WHERE MAX(sale_date)
我知道这不会运行,但它是描述它的最佳方式。有人可以帮助这个查询吗?
Array
(
[0] => Array
(
[prod_numb] => 2336
[cost_amt] => 32.00
[sale_date] => 2015-01-01
)
[1] => Array
(
[prod_numb] => 2336
[cost_amt] => 32.00
[sale_date] => 2015-01-02
)
[2] => Array
(
[prod_numb] => 2458
[cost_amt] => 32.00
[sale_date] => 2015-01-03
)
解决方案
您可以将内部联接与按 prod_num 分组的子选择一起用于最大日期
select prod_numb, cost_amt
FROM product_cost
inner join (
select prod_numb, MAX(sale_date) max_date
FROM product_cost
group by prod_numb
) t on t.prod_numb = product_cost.prod_numb and t.max_date = product_cost.sale_date
推荐阅读
- prolog - prolog 什么是这些未指定的参数,它们是如何起作用的?
- python-3.x - 在 Python 3.9.6 中将 b-string 转换为 png
- c - C中char和int的大小
- laravel - Laravel 8 项目部署到共享主机 - 安全问题和 public_html 文件夹
- python - 列表列表中的自定义切片
- javascript - 当我尝试提交表单时,它显示 TypeError: Object(...) is not a function
- firebase - Firebase 托管重写 URL
- python - 使用 Python 按变量名对 Terraform variables.tf 进行排序
- r - 如何全部转换
到 - python - 加载包列表时出错:请求失败,状态码为 404