如何基于Oracle / sql中的两列进行分区

Ash*_*ish 1 sql oracle window-functions

请帮我以下

题:

+ ------ + ---------- +
| 姓名| 子名称|
+ ------ + ---------- +
| A | x |
| A | x |
| B | x |
| A | y |
| B | y |
+ ------ + ---------- +

所需结果:

+ ------ + ---------- + ------- +
| 姓名| 子名称| 计数|
+ ------ + ---------- + ------- +
| A | x | 2 |
| A | x | 2 |
| B | x | 1 |
| A | y | 1 |
| B | y | 1 |
+ ------ + ---------- + ------- +

三列名称,子名称,计数

我想基于名称和子名称进行分区。

MT0*_*MT0 6

SQL小提琴

Oracle 11g R2架构设置

CREATE TABLE test ( Name, "Sub-name" ) AS
          SELECT 'A', 'x' FROM DUAL
UNION ALL SELECT 'A', 'x' FROM DUAL
UNION ALL SELECT 'B', 'x' FROM DUAL
UNION ALL SELECT 'A', 'y' FROM DUAL
UNION ALL SELECT 'B', 'y' FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

查询1

SELECT Name,
       "Sub-name",
       COUNT( 1 ) OVER ( PARTITION BY "Sub-name", Name ) AS "Count"
FROM   test
Run Code Online (Sandbox Code Playgroud)

结果

| NAME | Sub-name | Count |
|------|----------|-------|
|    A |        x |     2 |
|    A |        x |     2 |
|    B |        x |     1 |
|    A |        y |     1 |
|    B |        y |     1 |
Run Code Online (Sandbox Code Playgroud)