sql - 在 SQL Server 中使用 Join 查询获取最大值
问题描述
我有一个用户表:
|Username|UserType|
|John |A |
|Mary |A |
|Anna |B |
和用户点
|UserType|MinPoints|Level |
|A |100 |Bronze |
|A |200 |Silver |
|A |300 |Gold |
|B |500 |Bronze |
和用户地址
|UserType|Address
|A |Address1
|B |Address2
我正在寻找一个查询来获取 MinPoints 列的最大值。
我想要结果而不使用 Group by 子句。我尝试了以下
Select UserType,UA.Address
,(Select max(MinPoints) from Users T1 WHERE T1.Usertype=U.Usertype)MinPoints from Users U
Left Join UserAddress UA on UA.UserType=U.UserType
Select UserType,UA.Address,MinPoints
from Users U
Left Join UserAddress UA on UA.UserType=U.UserType
Left Join (Select UserType,max(MinPoints) from Users T1 Group by UserType) x ON X.Usertype=U.Usertype
对于上述查询,我得到了相同的结果。但我想要的是哪个查询更好地考虑性能。
请建议
解决方案
MinPoints
这将返回一个或多个等于最大值的用户的所有用户数据MinPoints
。使用示例数据,JOIN
将起作用,但您可能需要它们为LEFT JOIN
s。
SELECT
u.UserName,
ua.Address,
up.MinPoints AS MaxOfMinPoints
FROM
UserPoints AS up
JOIN
Users AS u
ON u.UserType = up.UserType
JOIN
UserAddress AS ua
ON ua.UserType = up.UserType
WHERE
up.MinPoints = (SELECT MAX(s.MinPoints) FROM UserPoints AS s)
推荐阅读
- c# - 使用 AutoFixture 进行单元测试以保证返回的对象列表中有一个条目
- java - 如何从java在数组mongodb中插入一个对象
- c# - 如何获得链接的 1-n 个元素的列表?
- html - 仅在物化 css 中为大屏幕显示静态广告空间
- keras - Google colaboratory, Keras:以 HDF5 文件格式保存模型并将其下载到笔记本电脑
- python - 如何在 Pandas Dataframe 中对两列进行分组并获取值计数后获取最高值行?
- python - 给定 3-dim 索引批次的 3-dim 数据批次的最后一个昏暗仅采用 n-length-subset 的 numpy 方式
- python - 通过与其他列表进行比较来计算列表中每个单词出现的相对频率
- r - 如何向堆叠的条形图添加点
- c# - var 如何处理数字?