[求助]分组查询同时返回组内第1行的某个字段
问题如下:
假定有如下视图(ORACLE 10g):
产品ID 长 宽 高
YA0023 20 10 15
123456 20 10 15
W65027 20 10 15
119925 50 40 30
235685 50 40 30
123D53 10 10 65
YL2565 10 10 65
022256 10 10 65
首先需要按照“长、宽、高”三个字段(描述产品规格)分组,将“长、宽、高”完全相同的行合并,
然后取得每组中第一行的“产品ID”拼在分组结果上,
最后要求的结果如下:
产品ID 长 宽 高
YA0023 20 10 15
119925 50 40 30
123D53 10 10 65
注:
1. 原视图中没有类似“序列号”的列
2. 原视图中的行排列顺序是按照时间倒序排列的,即排在上面的产品生产时间距离当前时间更近
2. “产品ID”列为字母数字组合,不是按照字母数字自然排序产生的
4. 实际的数据库中数据总量大概有10万行左右,实际需要分组的产品规格字段大概有20个左右,分组后的结果估计有1万行左右,这就要求查询性能不能太慢
整个问题概括起来大概是:
从生产历史记录中统计生产产品“规格”数量,同时返回每个规格最后生产的产品ID。
求助ORACLE专家,这个问题该怎么解决?