【发布时间】:2021-04-02 00:36:16
【问题描述】:
我有一个如下所示的 Oracle (12c) 表:
| ID | Amt | Identifier |
|---|---|---|
| ABC | 50 | 20210331 |
| ABC | 125 | 20210331 |
| ABC | 75 | 20201205 |
| ABC | 100 | 20210401 |
| DEF | 50 | 202103AA |
| DEF | 125 | 202103BB |
| DEF | 75 | 202012BB |
| DEF | 500 | 202104AC |
我需要 col1 的总金额和 Oracle SQL 中标识符的第一行,如下所示
| ID | Amt | Identifier |
|---|---|---|
| ABC | 350 | 20210331 |
| DEF | 750 | 202103AA |
表结构:
ID varchar2
金额
标识符 varcahr2
提前致谢
【问题讨论】:
-
当您说“标识符的第一行”时,“第一”是什么意思? (您几乎肯定是指“第一行中的标识符值”,表中没有“标识符行”;但这仍然不能解释 first 的含义。)请注意,在 Gordon Linoff 的答案,他只是选择最少的标识符 - 但这与您在问题中发布的(可能是期望的)输出相矛盾。
-
我的意思是当 ID 随 SUM(Amt) 一起变化时 Identifier 列值的出现
-
您似乎没有理解这个问题。当我们显示行时,它们以某种(随机!)顺序出现,因为我们不能将它们显示在彼此之上;但在数据库中,行在给定 ID 内没有“自然”顺序。没有“第一次”或“第二次”或“第三次”出现。当您按什么订购它们时,“第一”或“第二”等?那就是我的意思。想想篮子里的高尔夫球——哪个是“第一”或“第二”等?您需要以同样的方式考虑表中的行。仅当您指定排序时才会对它们进行排序。