sql - 当在 1 列中重复时,获取具有最高值的行
问题描述
查询结果类似于以下示例:
col1 col2
A 0
B 0
B 1
C 0
D 1
现在我不想在 col1 中重复。但是当 col1 有重复时,它应该给出 col2 = 1 (或最高值)的行,而不给出 col2 = 0 的行。所以结果将是:
col1 col2
A 0
B 1
C 0
D 1
这个查询应该是什么样子?
编辑:
max 有效,但是当 col2 = 1 时有第 thirth 列,带有一些文本值如何获得右侧的结果?所以当col1中有重复时,则获取col2 = 1的行
col1 col2 col3 col1 col2 col3
A 0 A 0
B 0 B 1 XYZ
B 1 XYZ --> C 0
C 0 D 1 YXA
D 1 YXA
谢谢!
解决方案
查看 MAX() 函数:https ://docs.microsoft.com/en-us/sql/t-sql/functions/max-transact-sql?view=sql-server-2017
SELECT col1,MAX(col2)
FROM [yourTable]
GROUP BY col1
推荐阅读
- json - 如何使用 JSON 格式发布 ManyToOne 实体
- python - python使用索引从组合数据框中选择单个数据框数据
- excel - 在同一行添加范围声明后不再成功设置范围数组
- reactjs - 如何防止使用 Redux 多次显示相同的错误?
- arrays - Rust:数组长度的宏
- python - Office365-REST-Python-客户端访问令牌问题
- excel - Excel 中的 DATEDIF 和 IF 语句,在 10 个月内不会返回正确的结果
- android - 如何使用 Room 库中的 createFromAsset 函数?
- java - 从静态上下文调用非静态方法
- vue.js - 如何在Vue中修复“观察者“isDark”的getter错误”