如何解决分组依据检索3个值
我还没有测试过,但我认为这可以工作
SELECT Cod ,
MIN(Id) AS id__Min,
MAX(Id) AS id_Max,
SUM(ID)-MAX(Id)-MIN(Id) as id_Middle,
COUNT(*) AS Tot
FROM Table a ( NOLOCK )
GROUP BY Cod
HAVING COUNT(*)=3
仅当您具有3个值并且SUM()不会溢出时(如BogdanSahlean在注释中指出),此技巧才起作用。
解决方法
我有以下查询
SELECT Cod,MIN(Id) AS id_Min,MAX(Id) AS id_Max,-- retrieve value in the middle,COUNT(*) AS Tot
FROM Table a ( NOLOCK )
GROUP BY Cod
HAVING COUNT(*)=3
我怎样才能像我对min和max所做的那样检索min和max之间的值?
例子
Cod | Id
Stack 10
Stack 15
Stack 11
Overflow 100
Overflow 120
Overflow 15
要求的输出
Cod | Min | Value_In_The_Middle | Max
Stack 10 11 15
Overflow 15 100 120
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。