Oracle SQL GROUP BY“不是GROUP BY表达式”的帮助

Oracle SQL GROUP BY“不是GROUP BY表达式”的帮助,第1张

概述我有一张table some_table +--------+----------+---------------------+-------+| id | other_id | date_value | value |+--------+----------+---------------------+-------+| 1 | 1 | 2 我有一张table some_table
+--------+----------+---------------------+-------+| ID     | other_ID | date_value          | value |+--------+----------+---------------------+-------+| 1      | 1        | 2011-04-20 21:03:05 | 104   || 2      | 2        | 2011-04-20 21:03:04 | 229   || 3      | 3        | 2011-04-20 21:03:03 | 130   || 4      | 1        | 2011-04-20 21:02:09 | 97    || 5      | 2        | 2011-04-20 21:02:08 | 65    || 6      | 3        | 2011-04-20 21:02:07 | 101   || ...    | ...      | ...                 | ...   |+--------+----------+---------------------+-------+

我想要最新的记录为other_ID 1,2和3.我想出的明显的查询是

SELECT ID,other_ID,MAX(date_value),value  FROM some_table  WHERE other_ID IN (1,2,3)  GROUP BY other_ID

但是它会吐出“不是GROUP BY表达式”异常.我尝试在GROUP BY子句中添加所有其他字段(即ID,value),但是只返回所有内容,就好像没有GROUP BY子句一样. (嗯,这也有道理.)

所以…我正在阅读Oracle sql手册,所有我可以找到的是一些例子,仅涉及到两列或三列的查询和一些我以前从未看过的分组功能.我该怎么去回去

+--------+----------+---------------------+-------+| ID     | other_ID | date_value          | value |+--------+----------+---------------------+-------+| 1      | 1        | 2011-04-20 21:03:05 | 104   || 2      | 2        | 2011-04-20 21:03:04 | 229   || 3      | 3        | 2011-04-20 21:03:03 | 130   |+--------+----------+---------------------+-------+

(每个other_ID的最新条目)?谢谢.

select ID,date_value,value from (   SELECT ID,value,ROW_NUMBER() OVER (partition by other_ID order BY Date_Value desc) r   FROM some_table    WHERE other_ID IN (1,3)  ) where r = 1
总结

以上是内存溢出为你收集整理的Oracle SQL GROUP BY“不是GROUP BY表达式”的帮助全部内容,希望文章能够帮你解决Oracle SQL GROUP BY“不是GROUP BY表达式”的帮助所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1167573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存