【发布时间】:2018-11-13 02:59:22
【问题描述】:
我需要知道如何根据条件缩小我的分区窗口。例如,如果我有以下情况:
SELECT
T1.*,
COUNT(T1.ID) OVER (PARTITION BY ID)
FROM TBL T1
WHERE /* some other conditions */;
我需要 ID 分区只是具有 T1.TYPE = 'J' 的所有相同 ID 的子集。
+---------+--------+---------------+--------+
| ID | TYPE | OTH1 | OTH2 |
+---------+--------+---------------+--------+
| 1 | K | 500 | RER |
| 1 | J | 503 | LEL |
| 1 | J | 534 | KEL |
| 2 | J | 536 | NULL |
| 2 | J | 667 | ERT |
| 2 | J | 98 | NULL |
+---------+--------+---------------+--------+
在这个数据集中,如果TYPE = J,我只需要考虑我的窗口计数,所以对于ID = 1,计数应该是2而不是3,因为第一行是TYPE = K(ID = 2,其中计数是 3)。
这可能吗?
【问题讨论】:
-
你的预期输出是什么?
标签: sql oracle oracle12c database-partitioning