Sql 如何获取未分组列上的最新插入值?

Sql 如何获取未分组列上的最新插入值?,sql,oracle11g,query-tuning,Sql,Oracle11g,Query Tuning,如何从下面的查询中以更高效、更优雅的方式,基于\u MY\u DATE\u COLUMN\u为\u ID\u上下文获取我的\u最新\u插入的\u编号\u SELECT MAX(MY_DATE_COLUMN), ID, listagg(SOME_COLUMN, '') within GROUP (ORDER BY MY_DATE_COLUMN), SUBSTR( listagg(MY_NUMBER, ';') within GROUP (ORDER BY MY_DATE_COLU

如何从下面的查询中以更高效、更优雅的方式,基于\u MY\u DATE\u COLUMN\u为\u ID\u上下文获取我的\u最新\u插入的\u编号\u

SELECT MAX(MY_DATE_COLUMN),
 ID,
 listagg(SOME_COLUMN, '') within GROUP (ORDER BY MY_DATE_COLUMN),
 SUBSTR(
      listagg(MY_NUMBER, ';') within GROUP (ORDER BY MY_DATE_COLUMN DESC),
      1,
      instr(
             listagg(MY_NUMBER, ';') within GROUP (ORDER BY MY_DATE_COLUMN DESC),'-') - 1
           ) as MY_LATEST_INSERTED_NUMBER_BASING_ON_MY_DATE_COLUMN_IN_ID_CONTEXT
 FROM MY_TABLE
 GROUP BY ID;

如果我理解正确,您希望
保留

SELECT MAX(MY_DATE_COLUMN), ID,
       listagg(SOME_COLUMN, '') within GROUP (ORDER BY MY_DATE_COLUMN),
       max(MY_LATEST_INSERTED_NUMBER_BASING_ON_MY_DATE_COLUMN_IN_ID_CONTEXT)
           keep (dense_rank first order by MY_DATE_COLUMN DESC)
FROM MY_TABLE
GROUP BY ID;

所有的大写字母并不能真正帮助你表达你想要做的事情。

占星家宣布
保持
的这一周是如此。:)它当然更优雅,尽管成本相同,但我认为在生产环境中查询速度会更快。谢谢