【发布时间】:2013-03-09 00:27:10
【问题描述】:
假设我有一张桌子
----------------------------------------------------------- |编号 |值1 |值2 |价值3 | ----------------------------------------------------------- | 102 | 10 | 1 | 3 | ----------------------------------------------------------- | 102 | 2 | 11 | 0 | ----------------------------------------------------------- | 102 | 0 | 9 | 13 | ----------------------------------------------------------- | 102 | 3 | 5 | 7 | -----------------------------------------------------------对于每个不同的 id,我想在 value1、value2 和 value3 列中返回具有最大值的行,即
----------------------------------------------------------- |编号 |值1 |值2 |价值3 | ----------------------------------------------------------- | 102 | 10 | 11 | 13 | -----------------------------------------------------------(当然表中还有102以外的其他id)
我设法用“partition by”来做到这一点,但问题是我必须在 powerbuilder 的数据窗口中使用它,一旦我将它粘贴到那里,整个 IDE 就会崩溃并且项目会损坏。
我设法创建了一个 sql,它为每一行执行 3 个内部连接,选择返回每列的最大值。
还有其他更简单的方法吗?
提前感谢您的回答!
【问题讨论】:
-
请通过添加适当的标签(Oracle、SQL Server、MySQL 等)来指定您的目标关系数据库管理系统。可能有一些答案利用了不受普遍支持的语言或产品功能。此外,通过使用特定的 RDBMS 对其进行标记,您的问题可能会受到更适合回答的人的关注。