У меня есть файл Excel с таблицей, которая выглядит следующим образом:
A B C
Registry ID Parent Reg ID Focus Account (Y/N)
100000033 100000036778 Y
100000343 1000 Y
1000343223 100000036778 N
И формула находится в столбце D (Focus Parent): =IF(COUNTIFS(C:C,"Y",B:B,B)>=1,"Y","N")
Таким образом, в столбце D формула возвращает «Y» для каждой строки.
Я попытался повторить это в SQL с помощью следующего кода:
SELECT
REGISTRY_ID,
PARENT_REG_ID,
FOCUS_ACCOUNT,
SCORE_DETAILS,
(CASE
WHEN FOCUS_ACCOUNT = 'Y' THEN
(CASE
WHEN COUNT(PARENT_REG_ID) >= 1 THEN 'Y'
ELSE 'N'
END)
ELSE 'N'
END) AS Focus_Parent
FROM MA_ACCOUNTS
Но этот запрос возвращает эту ошибку:
ORA-00937: не групповая функция для одной группы
Не могли бы вы посоветовать?
Позднее редактировать:
Позвольте мне уточнить это: у меня есть список с уникальными идентификаторами Registry_ID, которые содержат идентификатор Parent_Registry_ID. Parent_Registry_ID может иметь несколько Registry_ID, но если Registry_ID помечен как «Y» в столбце Focus_Account, то у Parent_Registry_ID должно быть «Y» в столбце Focus_Parent.
Registry ID Parent Reg ID Focus Account (Y/N)
1 A N
2 B N
3 A Y
4 C Y
5 A N
6 B Y
7 A N
8 D Y
9 E N
10 E N
Ожидаемый результат:
Registry ID Parent Reg ID Focus Account (Y/N) Focus Parent (Y/N)
1 A N Y
2 B N Y
3 A Y Y
4 C Y Y
5 A N Y
6 B Y Y
7 A N Y
8 D Y Y
9 E N N
10 E N N