这个问题已经在这里有了答案 :
ORA-00979不是按表达式分组 (8个答案)
6年前关闭。
我对数据库比较陌生。我正在使用Oracle,并且正在尝试实现此查询以查找该成员参加的个人培训课程的数量。
这些表是;
会员
MEMBERS_ID(NUMBER),
MEMBERSHIP_TYPE_CODE(VARCHAR),
ADDRESS_ID(NUMBER), CLUB_ID(NUMBER)
MEMBER_NAME(VARCHAR),
MEMBER_PHONE(VARCHAR),
MEMBER_EMAIL(VARCHAR)
PERSONAL_TRAINING_SESSIONS
SESSION_ID(VARHCAR),
MEMBER_ID (NUMBER),
STAFF_ID(VARCHAR),
SESSION_DATETIME(DATE)
我的查询正在重现此错误:
ORA-00979:不是GROUP BY表达式00979。00000-“不是GROUP BY表达式” 原因:
操作:行错误:1列:8
SELECT MEMBERS.MEMBER_ID,MEMBERS.MEMBER_NAME, COUNT(personal_training_sessions.session_id)
FROM MEMBERS JOIN personal_training_sessions
ON personal_training_sessions.member_id=members.member_id
GROUP BY personal_training_sessions.session_id;
谁能指出我正确的方向?我环顾四周,是否需要分开计数查询?
错误说明了一切,您没有按MEMBERS.MEMBER_ID
和分组MEMBERS.MEMBER_NAME
。
SELECT MEMBERS.MEMBER_ID, MEMBERS.MEMBER_NAME
, COUNT(personal_training_sessions.session_id)
FROM MEMBERS
JOIN personal_training_sessions
ON personal_training_sessions.member_id = members.member_id
GROUP BY MEMBERS.MEMBER_ID, MEMBERS.MEMBER_NAME
您需要 每个 成员的个人会话 数 ,因此您需要按成员信息分组。
基本的(当然,它可以变得更加复杂)GROUP BY,SELECT查询是:
SELECT <column 1>, <column n>
, <aggregate function 1>, <aggregate function n>
FROM <table_name>
GROUP BY <column 1>, <column n>
一个聚集函数之中,肯怀特说,像MIN()
,MAX()
,COUNT()
等你GROUP BY 所有 未聚合的列。
如果您的MEMBERS
表在上是唯一的MEMBER_ID
,这将仅按预期工作,但是我怀疑是基于您的查询。为了澄清我的意思,如果你的表是不是唯一的MEMBER_ID
,然后你不计算每会话数MEMBER_ID
,但每个会话的数量MEMBER_ID
和
每MEMBER_NAME
。如果它们是1:1的关系,那么实际上是同一件事,但是如果MEMBER_NAME
每个可以有多个s,MEMBER_ID
则不是。
下面是我正在使用的正则表达式的最新版本,它抛出了错误“Invalid regular expression” XSD:正则表达式在位置4验证失败:当前选项设置不支持此表达式。 我在xsd文件中得到了这个异常,我正在message broker(IIB)中开发这个xsd。有谁能帮我解决这个问题吗?
我目前正在尝试创建一个日志解析器,它从一个输入文件(a.log)中获取以下格式的一系列ping报告:(194.12.224.34中的64字节:icmp_seq=1 ttl=47 time=66.7 ms)并构建一个输出文件(a.csv)。 经过多次尝试,我发现了下面的错误。我的同事给了我他的代码(如下),虽然写得不同,但本质上是一样的。他的代码给出了同样的错误,尽管他的代码在同一个任务中正常工作。
但是下面的代码工作得非常好。你能帮我找出原因吗?
我正在使用石英调度程序来安排我的工作。我有一个错误的cron表达式: 当我这样做的时候: is。但是当我查看表达式时,它显然是错误的。其他人也面临类似的问题吗? 注:包装为:包装组织。石英 石英的版本是:2.2.3 请检查来自的CronExpression类http://www.javadoc.io/doc/org.quartz-scheduler/quartz/2.2.3 我还尝试了类的方法,但
问题内容: 我收到以下查询的ORA:00936错误。请让我知道查询中的问题 问题答案: SELECT convert(DATE,r.created_dt)作为created_dt 问题在于错误使用了 CONVERT 函数。请参阅文档。 我猜您正在尝试转换数据类型,可以使用 TO_DATE 将字符串转换为日期。或者, TO_CHAR 反之亦然。
我有这个非常简单的打字稿文件: 然后我运行: 打字稿编译器(版本1.8.7,OS X)抱怨: 我如何修复这个错误?谢谢你。