如何在firebird中使用GROUP BY

如何在firebird中使用GROUP BY,第1张

如何在firebird中使用GROUP BY

您必须来自MySQL。MySQL-IMHO令人误解,错误且以一种黑变的,不可预测的方式-允许您指定部分

GROUPBY
查询,而数据库引擎会尝试从其余查询中找出您未分组的列中的 哪个
值想。另一方面,标准SQL(Firebird和大多数其他RDBMS)则不这样做。它要求将任何非聚合列包含在分组依据中,并且需要任何非分组依据列来明确指定所需的


在你的情况下,违规列

MEASUREMENT
LL
UL
。你需要指定
MEASUREMENT
LL
UL
你想要的(是的,即使他们都是一样的;数据库引擎无法知道或保证这种方式),或者如果你通过一个想组或多列或可能你忘了汇总(您想要
SUM
吗?)


有效查询的示例:

  1. 按所有列分组(相当于

    SELECt DISTINCT
    ):

    SELECT TEST_DESC, MEASUREMENT, LL, UL

    FROM T_TABLE2
    GROUP BY TEST_DESC, MEASUREMENT, LL, UL

  2. 分组,

    MEASUREMENT
    并返回
    MIN
    LL和
    MAX
    UL:

    SELECt TEST_DESC, MEASUREMENT, MIN(LL), MAX(UL)

    FROM T_TABLE2
    GROUP BY TEST_DESC, MEASUREMENT

  3. SUM
    未分组的列:

    SELECt TEST_DESC, SUM(MEASUREMENT), SUM(LL), SUM(UL)

    FROM T_TABLE2
    GROUP BY TEST_DESC

  4. 聚合的组合:

    SELECt TEST_DESC, COUNT(DISTINCT MEASUREMENT), SUM(LL), MAX(UL)

    FROM T_TABLE2
    GROUP BY TEST_DESC



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5036001.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-15
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存