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

Oracle/sql中如何基于两列进行分区,sql,oracle,window-functions,Sql,Oracle,Window Functions,请帮我做以下事情 问题: +------+----------+ | Name | Sub-name | +------+----------+ | A | x | | A | x | | B | x | | A | y | | B | y | +------+----------+ 预期结果: +------+----------+-------+ | Name | Sub-name | Cou

请帮我做以下事情

问题:

+------+----------+ | Name | Sub-name | +------+----------+ | A | x | | A | x | | B | x | | A | y | | B | y | +------+----------+ 预期结果:

+------+----------+-------+ | Name | Sub-name | Count | +------+----------+-------+ | A | x | 2 | | A | x | 2 | | B | x | 1 | | A | y | 1 | | B | y | 1 | +------+----------+-------+ 三列名称、子名称、计数

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

Oracle 11g R2架构设置:

问题1:

:

Oracle 11g R2架构设置:

问题1:

:

试试这个:

从表中选择name、sub_name、countname over partition by name、sub_name as count


选择name、sub_name、countname over partition by name、sub_name as count from table

选择ra.name、ra.sub name、ta.count from table ra 内连接 从表中选择名称、子名称、计数* 按名称分组,子名称a 关于ra.Name=ta.Name 关于ra.sub-name=ta.sub-name 按子名称描述订购


我真的不明白为什么我们需要为这个解决方案使用分区。即使上面的连接查询也可以正常工作…希望它应该…

从表ra中选择ra.Name、ra.sub Name、ta.count 内连接 从表中选择名称、子名称、计数* 按名称分组,子名称a 关于ra.Name=ta.Name 关于ra.sub-name=ta.sub-name 按子名称描述订购


我真的不明白为什么我们需要使用分区来解决这个问题。即使是上面的连接查询也很好…希望它应该…

请阅读。你试过什么?如果我问的问题不恰当,我很抱歉。我试着在分区上使用子名称countName作为CountOkay,那个么那个不正确的输出是什么呢?仅供参考,这是您在问题中应该考虑的事情-这里的人会帮助您调试您已经编写的代码,但他们不太可能只是为您编写代码。不完全确定您想要的是什么,但听起来您想查看汇总或多维数据集。似乎您在正确的轨道上进行计数,但是分区规范看起来有点不合适。请阅读。你试过什么?如果我问的问题不恰当,我很抱歉。我试着在分区上使用子名称countName作为CountOkay,那个么那个不正确的输出是什么呢?仅供参考,这是您在问题中应该考虑的事情-这里的人会帮助您调试您已经编写的代码,但他们不太可能只是为您编写代码。不完全确定您想要的是什么,但听起来您想查看汇总或多维数据集。似乎您在正确的轨道上进行计数,但是分区规范看起来有点不合适。
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;
SELECT Name,
       "Sub-name",
       COUNT( 1 ) OVER ( PARTITION BY "Sub-name", Name ) AS "Count"
FROM   test
| NAME | Sub-name | Count |
|------|----------|-------|
|    A |        x |     2 |
|    A |        x |     2 |
|    B |        x |     1 |
|    A |        y |     1 |
|    B |        y |     1 |