mysql - 如何使用 sql select 通过一组记录中的一列获取最大值的结果?
问题描述
我在表格中有这些数据。
date | name | code
2020-01-01 | category1 | 0
2020-01-02 | category1 | 1
2020-01-03 | category1 | 2
2020-01-04 | category1 | 3
2020-01-05 | category1 | 0
2020-01-06 | category1 | 1
2020-01-07 | category1 | 2
2020-01-08 | category1 | 0
2020-01-01 | category2 | 0
2020-01-02 | category2 | 0
2020-01-03 | category2 | 1
2020-01-04 | category2 | 0
2020-01-05 | category2 | 1
2020-01-06 | category2 | 2
2020-01-07 | category2 | 0
2020-01-08 | category2 | 1
......
集合中的列代码增加 1。
需要获取一组记录中一列具有最大值的记录。我的示例的结果必须是:
date | name | code
2020-01-04 | category1 | 3
2020-01-07 | category1 | 2
2020-01-03 | category2 | 1
2020-01-06 | category2 | 2
2020-01-08 | category2 | 1
......
解决方案
这是你想要的吗?
select date, name, code
from (
select
t.*,
lead(code) over(partition by name order by date) lead_code
from mytable t
) t
where not code <= lead_code
对于您的示例数据,这会产生:
日期 | 姓名 | 代码 :--------- | :-------- | ---: 2020-01-04 | 类别1 | 3 2020-01-07 | 类别1 | 2 2020-01-03 | 类别2 | 1 2020-01-06 | 类别2 | 2
推荐阅读
- java - Kotlin 数据类中的私有成员变量
- reactjs - 在字符串中引入反应元素
- excel - 防止 Excel 工作簿在计算机之间复制
- python - 转换日期/月/年字符串变量以包含时间
- javascript - 导航栏切换/可折叠导航栏不起作用
- css - 类和 id 选择器在 AntennaHouse Formatter 中不起作用
- python-3.x - 使用 xarray 组合两个数据数组
- python - 用 Python 编写函数
- c# - UploadFromStream 或 TransferManager.CopyAsync 对于大文件(400MB 或以上)Azure Blob API 非常慢
- amazon-s3 - 无服务器框架 - 创建 Lambda 和 S3 并在 S3 中上传文件。然后,使用 Lambda 提取到 DynamoDB