【发布时间】:2011-11-10 16:46:00
【问题描述】:
我有这样一张桌子:
name value1 value2 value3
---------------------------
name1 1 1 1
name2 1 1 2
name3 2 2 11
name4 2 12 2
name5 3 3 8
name6 3 3 2
我需要的是这样的结果:
name value1 value2 value3
---------------------------
name2 1 1 2
name4 2 12 2
name5 3 3 8
即:
-
value1的每组恰好有 1 个实体; - 此条目必须在
value1这组value2中具有最大值; - 该条目在
value2组中的最大值必须为value3。
在互联网上搜索后,我得到了一个解决方案,将SELECT列表中的标量子查询作为单个列,但它非常丑陋和复杂,因为必须为每个列运行相同的子查询@ 987654330@, value2, value3.
SQL Cookbook 提到了配方 14.10 中通过将类型定义为对象的解决方案,但我更喜欢单个 SELECT 语句中的解决方案。
有什么简单的方法吗?
【问题讨论】:
标签: sql oracle subquery analytics scalar-subquery