【发布时间】:2019-03-27 16:53:44
【问题描述】:
我有一个带有如下表格的 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: 不是单组群函数
你能建议吗?
后期编辑:
让我澄清一下:我有一个包含 Parent_Registry_ID 的唯一 Registry_ID 列表。 Parent_Registry_ID 可以有多个 Registry_ID,但如果 Registry_ID 在 Focus_Account 列中标记为“Y”,则 Parent_Registry_ID 应该在 Focus_Parent 列中具有“Y”。
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
【问题讨论】:
-
分享你的预期输出
-
你在
SELECT中使用COUNT(PARENT_REG_ID),所以期待GROUP BY