【发布时间】:2015-04-20 21:22:21
【问题描述】:
如果该国家/地区有超过 3 种语言,我想获取名称和语言编号。但我不知道为什么会出现“不是单组群功能”错误。
SELECT C.NAME,COUNT(L.LANGUAGE)
FROM WORLD.CITY C
INNER JOIN WORLD.COUNTRYLANGUAGE L ON C.COUNTRYCODE = L.COUNTRYCODE
WHERE C.COUNTRYCODE = (
SELECT COUNTRYCODE
FROM WORLD.COUNTRYLANGUAGE
GROUP BY COUNTRYCODE HAVING COUNT(LANGUAGE) >3)
GROUP BY NAME;
DESC WORLD.CITY;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER(10)
NAME NOT NULL CHAR(35 CHAR)
COUNTRYCODE NOT NULL CHAR(3 CHAR)
DISTRICT NOT NULL CHAR(20 CHAR)
POPULATION NOT NULL NUMBER(10)
DESC WORLD.COUNTRYLANGUAGE;
Name Null? Type
----------------------------------------- -------- ----------------------------
COUNTRYCODE NOT NULL CHAR(3 CHAR)
LANGUAGE NOT NULL CHAR(30 CHAR)
ISOFFICIAL NOT NULL VARCHAR2(4000 CHAR)
PERCENTAGE NOT NULL FLOAT(126)
【问题讨论】:
-
ifofficial作为 varchar2(4000)?说“是”或“否”需要 4000 个字符? -
我看不到该查询将如何生成该特定错误。你确定这是你正在运行的吗?查询还有其他问题,但我认为聚合没有问题。
-
我确定这是我遇到的错误。有人可以帮忙吗?我需要使用子查询来做到这一点。谢谢。