gpt4 book ai didi

sql - 错误 : Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

转载 作者:行者123 更新时间:2023-12-04 12:50:23 26 4
gpt4 key购买 nike

我正在使用 Firebird SQL。下面提到的查询返回 4 行,如图所示。

    SELECT a.EPS_ID,b.C_NAME,c.AY_YR_NAME,d.S_NAME,e.E_NAME
FROM
TBLEXAMPLANNER_S_MSB a,
TBLCLASS_MSB b,
TBLACADEMICYEAR_MSB c,
TBLSUBJECTS_MSB d,
TBLEXAMTYPE_MSB e
WHERE
a.EPS_CLASS_ID=b.C_ID
AND a.EPS_SESSION_ID=c.AY_ID
AND a.EPS_SUB_ID=d.S_ID
AND a.EPS_PE_ID=e.E_ID

click to view image

我希望它只返回 1(一)行

EPS_ID     C_NAME    AY_YR_NAME   S_NAME   E_NAME
---------------------------------------------------
7 5 2016-2017 English FA1

我正在使用以下查询,但它不起作用。

SELECT a.EPS_ID,MAX(b.C_NAME) AS XT,c.AY_YR_NAME,d.S_NAME,e.E_NAME
FROM
TBLEXAMPLANNER_S_MSB a,
TBLCLASS_MSB b,
TBLACADEMICYEAR_MSB c,
TBLSUBJECTS_MSB d,
TBLEXAMTYPE_MSB e
WHERE
a.EPS_CLASS_ID=b.C_ID
AND a.EPS_SESSION_ID=c.AY_ID
AND a.EPS_SUB_ID=d.S_ID
AND a.EPS_PE_ID=e.E_ID
GROUP BY a.EPS_ID,d.S_NAME

错误信息是:

Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

最佳答案

GROUP BY 的使用使引擎为您分组 记录。要进行分组,您必须为 每个 列向 RDBMS 提出建议,它应该做什么。

  • 分组吗? -> 添加列到 GROUP BY-Clause
  • 不分组吗? -> 好的,还有什么?
    • 忽略该列?从你的选择子句中删除它
    • 求和吗? -> 使用 SUM(mycol)
    • 其他聚合函数可以在 documentation 中找到

此外:在您的情况下,您尝试按 EPS_ID 进行分组,这在每一行中都是唯一的。因此,按该列进行分组 将返回所有行,因为没有可作为分组依据的内容。要对记录进行分组,它们必须具有相同值。

关于sql - 错误 : Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39768146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com