我正在努力解决以下问题,我在一个表中有以下数据:
| 参数ID|参数瓦尔|其他列|
| - -|- -|- -|
| 一个|十五个|第三十章|
| 一个|十五个|第三十章|
| 一个|十六岁|第三十章|
| 一个|十六岁|第三十章|
| 2个|二十一个|第三十章|
| 2个|二十一个|第三十章|
| 2个|二十二个|第三十章|
| 2个|二十二个|第三十章|
我想选择一个新的列,以便创建4组数据,以获得参数1和2的值之间的所有可能组合;所以我想得到这样东西:
| 设定|参数ID|参数瓦尔|其他列|
| - -|- -|- -|- -|
| 一个|一个|十五个|第三十章|
| 2个|一个|十五个|第三十章|
| 三个|一个|十六岁|第三十章|
| 四个|一个|十六岁|第三十章|
| 一个|2个|二十一个|第三十章|
| 三个|2个|二十一个|第三十章|
| 2个|2个|二十二个|第三十章|
| 四个|2个|二十二个|第三十章|
因此,例如,对于集合1,I将具有值15和21的对,对于集合2,值15和22等。
我尝试使用不同的分析函数,但我不能有我需要的。提前感谢。
2条答案
按热度按时间eyh26e7m1#
尽管MODEL子句有一个很好的提示,但我想我会选择一个结合了交叉连接和逆透视的解决方案,也许它不是最好的,但它符合我的需要。
其结果是:
| 设置标识|识别码|瓦尔|
| - -|- -|- -|
| 一个|一个|十五个|
| 一个|2个|二十一个|
| 2个|一个|十五个|
| 2个|2个|二十二个|
| 三个|一个|十六岁|
| 三个|2个|二十一个|
| 四个|一个|十六岁|
| 四个|2个|二十二个|
尝试了所有源数据的组合,似乎起作用了:)
webghufk2#
示例数据:
在评论后更新
如果您需要组合,则必须使用MODEL子句。为此,您应该准备一些数据(cte命名网格),以便您可以对特定数据进行寻址并管理您需要的所有组合。它如下所示:
这样你就可以得到任何组合。下面是你的结果:
| 设置标识|识别码|瓦尔|
| - -|- -|- -|
| 一个|一个|十五个|
| 2个|一个|十五个|
| 三个|一个|十六岁|
| 四个|一个|十六岁|
| 一个|2个|二十一个|
| 三个|2个|二十一个|
| 2个|2个|二十二个|
| 四个|2个|二十二个|
有关MODEL子句的详细信息:https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/10g/r2/prod/bidw/sqlmodel/sqlmodel_otn.htm
集合现在如下所示:
| 设置标识|IDS_值|
| - -|- -|
| 一个|1月15日、2月21日|
| 2个|1月15日、2月22日|
| 三个|1月16日、2月21日|
| 四个|1月16日、2月22日|
此致。