栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL根据一列中的最大值从多列中选择不同的行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL根据一列中的最大值从多列中选择不同的行

WITH  sequenced_data AS(  SELECt    *,    ROW_NUMBER() OVER (PARTITION BY ECode ORDER BY TotalNrShare) AS sequence_id  FROM    myView)SELECt  *FROM  sequenced_dataWHERe  sequence_id = 1

但是,这应提供与示例查询相同的结果。这只是完成同一件事的另一种方法。

但是,当您说出问题时,请您详细说明出什么问题了吗?是

TotalNrShare
真正的字符串,例如?这会搞乱您的订购 _(等等
MAX()
)_吗?

编辑:

即使以上代码与您的SQL Server不兼容,也不应将其完全崩溃。您应该只会收到一条错误消息。尝试执行

Select * ByMagic
,例如,它应该给出一个错误。我强烈建议您查看和/或重新安装Management Studio。

在替代方案方面,您可以执行此操作…

SELECT  *FROM  (SELECt ECode FROM MyView GROUP BY ECode) AS baseCROSS APPLY  (SELECt TOP 1 * FROM MyView WHERe ECode = base.ECode ORDER BY TotalNrShare DESC) AS data

理想情况下,您可以

base
用一个表替换子查询,该表已经具有您感兴趣的所有ECode的独特列表。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410828.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号