sql - Oracle 对象关系数据库 ORA-00979:不是 GROUP BY 表达式
问题描述
我正在尝试获取拥有 3 个以上项目的所有客户的姓名及其项目的数量,但出现以下错误:
ORA-00979: not a GROUP BY expression
00979. 00000 - "not a GROUP BY expression"
*Cause:
*Action:
Error at Line: 1 Column: 32
知道如何解决这个问题吗?我知道我必须将所有内容都包含在 GROUP BY 中,但我确实做到了。
customer_t 和 staff_t 继承自 user_t。
SELECT CONCAT(CONCAT(TREAT(REF(u) AS REF customer_t).name.first_name, ' '), (TREAT(REF(u) AS REF customer_t).name.last_name)) AS name, COUNT(p.projectno)
FROM "USER" u JOIN project p ON u.idno = p.customer.idno
WHERE VALUE(u) IS OF TYPE (customer_t)
GROUP BY name
HAVING COUNT(p.projectno) > 3;
CREATE TYPE name_t AS OBJECT (
first_name VARCHAR2(32),
last_name VARCHAR2(32)
);
CREATE TYPE address_t AS OBJECT (
province VARCHAR2(32),
street VARCHAR2(32),
city VARCHAR2(32),
postal_code VARCHAR2(10)
);
CREATE TYPE user_t AS OBJECT (
idno NUMBER,
email VARCHAR2(40),
password VARCHAR2(32),
name name_t,
address address_t,
phone VARCHAR2(15),
MAP MEMBER FUNCTION get_idno RETURN NUMBER
) NOT FINAL;
CREATE TYPE rank_t AS OBJECT (
rankno NUMBER,
name VARCHAR2(40),
description VARCHAR2(60)
);
CREATE TABLE "RANK" OF rank_t (
PRIMARY KEY (rankno),
UNIQUE (name)
);
CREATE TYPE customer_t UNDER user_t (
);
CREATE TYPE staff_t UNDER user_t (
salary NUMBER(7,2),
rank REF rank_t
);
CREATE TABLE "USER" OF user_t (
PRIMARY KEY (idno),
UNIQUE (email));
CREATE TYPE project_t AS OBJECT (
projectno NUMBER,
name VARCHAR2(40),
description VARCHAR2(60),
customer REF customer_t,
service REF service_t
);
CREATE TABLE project OF project_t (PRIMARY KEY (projectno));
解决方案
SELECT CONCAT(CONCAT(TREAT(REF(u) AS REF customer_t).name.first_name, ' '), (TREAT(REF(u) AS REF customer_t).name.last_name)) AS name,
COUNT(p.projectno)
FROM "USER" u JOIN project p ON u.idno = p.customer.idno
WHERE VALUE(u) IS OF TYPE (customer_t)
GROUP BY CONCAT(CONCAT(TREAT(REF(u) AS REF customer_t).name.first_name, ' '), (TREAT(REF(u) AS REF customer_t).name.last_name))
HAVING COUNT(p.projectno) > 3;
推荐阅读
- javascript - CastError:模型“User”的路径“_id”处的值“login”转换为 ObjectId 失败
- json - 生成的 swagger json 中的 fastify openapi3 中没有引用 $id
- javascript - 在异步函数内部反应 useSelector 值未更改
- python - 如何在镶木地板目录中查找某些列名
- node.js - 如何在 node.js 上制作登录面板?
- airflow - Apache Airflow:触发前运行的条件
- php - 如何在带有数组的表中创建一个colspan?
- javascript - 使用 Ajax.Reload() 重新加载数据表问题;
- postfix-mta - endif 的后缀正则表达式 header_check 显示错误:预期格式:键空白值
- python-3.x - 使用列表推导创建一个二维递增列表