sql—如何按插入顺序选择记录,然后按类型分组

tag5nh1u  于 2021-07-24  发布在  Java
关注(0)|答案(3)|浏览(429)

我有一个问题,我好像不能去上班。我有一张这样的table:
thingid、fk\U thingtypeid等。。。
我想按插入顺序选择记录,但按类型分组。因此,如果表中的数据按以下顺序排列:

ThingID, FK_ThingTypeID
1        1
2        2
3        1
4        1

我想选择这样的记录:

ThingID, FK_ThingTypeID
1        1
3        1
4        1
2        2

因此,它们是按添加顺序排列的,但按类型分组。
我尝试过使用order by和group by,但是我尝试的组合都不起作用,我看到的所有group by示例都使用聚合函数。我对计数或最大值等不感兴趣。。我只想订购上面的唱片。我试过只使用orderbythingid,fk\u thingtypeid,但这只是按id列出它们,而不是按类型分组。表中有一个或多个列,使用groupby需要我添加所有这些列,然后它就不能工作了。
有谁能举一个例子来说明实现我想要的结果的方法吗?
谢谢你的时间。

jv2fixgn

jv2fixgn1#

感谢那些回复。解决方案如下:

SELECT
    t.*
FROM
    Thing t
ORDER BY 
    (
        SELECT 
            min(ref.ThingID) 
        FROM Thing ref 
        WHERE
            ref.ThingTypeID = t.ThingTypeID 
    ),
    t.ThingID
slsn1g29

slsn1g292#

根据我的理解,这个问题可能对您有所帮助:

select * from table order by rownum, FK_ThingTypeID

您可以尝试以下查询:

select ROW_NUMBER() OVER(
   ORDER BY THINGID) AS RowNum, FK_ThingTypeID  from table
xdnvmnnf

xdnvmnnf3#

你的问题看起来很简单,所以我确信有人能帮你。一定很喜欢堆栈溢出。
我不知道这是不是你要找的?如果没有道歉

SELECT ThingID,FK_ThingTypeID
FROM Table
ORDER BY FK_ThingTypeID, ThingID

相关问题