2
我在寻找实现聚合函数,做最好的方法: -SQL聚合函数返回一个值,如果只有一个,否则空
- 如果该组中只包含一个重复值,返回值
- 如果组中包含的任何空,则返回null
- 如果组中包含多个值,返回null
下面是一些样本数据:
CREATE TABLE EXAMPLE
(ID NUMBER(3),
VAL VARCHAR2(3));
INSERT INTO EXAMPLE VALUES (1,'A');
INSERT INTO EXAMPLE VALUES (2,'A');
INSERT INTO EXAMPLE VALUES (2,'B');
INSERT INTO EXAMPLE VALUES (3,null);
INSERT INTO EXAMPLE VALUES (3,'A');
INSERT INTO EXAMPLE VALUES (4,'A');
INSERT INTO EXAMPLE VALUES (4,'A');
的SQL应该是这样的: -
SELECT ID, ????(VAL) ONLY_VAL
FROM EXAMPLE
GROUP BY ID
ORDER BY ID
我应该像这样之后的结果: -
ID ONLY_VAL
1 A
2
3
4 A
在真实的东西,我想做的事情他在多个VAL
列(由相同的ID
分组)。每ID
将会有几百条记录。
我认为这是一个有趣的问题我唯一的解决方案是NVL,MIN和MAX的混乱,它似乎应该有一个整洁的方式。