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 | + ------ + ---------- + ------- +
三列名称,子名称,计数
我想基于名称和子名称进行分区。
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)