如何使用group-by并获取其他行结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用group-by并获取其他行结果相关的知识,希望对你有一定的参考价值。

问题:如果这是我的数据:

col1,col2,col3,col4
===================
www.com,0,dangerous,reason A
www.com,1,dangerous 2,reason B

我想要第2列值为max的单个结果,所以我将在我的select中使用Max(col2)函数 - 但是如何获得那些相应的col3和col4行?

select 
    col1, max(col2), col3, col4
group by 
    col1

和???

谢谢Idan

答案

您可以使用order by并限制为一行。 ANSI标准语法是:

select t.*
from t
order by t.col2 desc
fetch first 1 row only;

并非所有数据库都支持fetch first子句,因此您可能必须使用select top 1limit或其他一些构造。

另一答案

您可以在select语句Like中使用where

Select * from table name where col2=max(col2)

您可以使用单个值获取最大列整行

如果包含相同值的列col2(如此时上面的1,1,2,2)返回2行。那时如果你想要单行你想要使用它

Select * from table name where col2=max(col2) fetch first 1 row only

可能有帮助

以上是关于如何使用group-by并获取其他行结果的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:是不是可以将 GROUP-BY 的结果加入到两个 SELECT 中?

如何使用导航架构组件从片段中获取结果?

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

Asynctask结果显示重新创建片段后

Android:从片段调用时如何从活动中获取返回结果?

中继fetchQuery:如何在没有片段结构的情况下获取查询结果