mysql怎么对每个group只选2行?

  算法/数据结构/数据库 sql    浏览次数:497        分享
0

mysql怎么对每个group只选2行?类似于group by group_id然后limit 2的意思。

谢谢!

 

徐锐达   2019-07-22 10:48



   1个回答 
3

因为最近一直在写MSSQL,不过百度了下基本用法是差不多的,LZ可以尝试下窗口函数

    假设table表有id,salary两列,id:A,A,A,B,B,B;salary:100,200,300,400,500,600

    按照LZ意思就是只输出100,200和400,500这两个"group"。

即:

select  * from

    (

    select id, row_number() over(partition by id order by salary) as level from table

)

where level <= 2


SofaSofa数据科学社区DS面试题库 DS面经

Pan   2019-07-23 16:23

谢谢! - 徐锐达   2019-07-25 22:55


  相关主题

hive里的LEFT SEMI JOIN是什么JOIN?   1回答

mysql如何获得某字段的最大值所在行?   1回答

mysql数据库中怎么从一个表里随机抽取k行?   2回答

SQL里UNION和UNION ALL的区别是什么?   2回答

sql里where和having的区别是什么?   1回答

NoSql数据库是什么样的?   1回答

sql中limit m, n是什么意思?   2回答

sql里nullif怎么用?   1回答

mysql里ORDER BY的默认排序是什么?   1回答

sql里的table和view有什么区别?   2回答

mysql里的锁是什么意思?   1回答

mysql里获取中位数和四分位数的函数是什么?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!