Sql 如何在GROUPBY子句中使用聚合函数

Sql 如何在GROUPBY子句中使用聚合函数,sql,Sql,如何在像这样的GROUPBY子句中使用聚合函数 SELECT VCH_DCOA_CODE, SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit FROM VCH_DEFINATION GROUP BY SUBSTRING(VCH_DCOA_CODE, 0, 6) 您必须在select子句中添加子字符串(VCH\u DCOA\u code,0,6),如下所示: SELECT SUBSTRING(VCH_DCOA_CODE, 0, 6), SUM(VCH_DEFIN

如何在像这样的GROUPBY子句中使用聚合函数

SELECT VCH_DCOA_CODE, SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit
FROM  VCH_DEFINATION 
GROUP BY SUBSTRING(VCH_DCOA_CODE, 0, 6)

您必须在
select
子句中添加
子字符串(VCH\u DCOA\u code,0,6)
,如下所示:

SELECT SUBSTRING(VCH_DCOA_CODE, 0, 6), SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit
FROM  VCH_DEFINATION 
GROUP BY SUBSTRING(VCH_DCOA_CODE, 0, 6)

您必须在
select
子句中添加
子字符串(VCH\u DCOA\u code,0,6)
,如下所示:

SELECT SUBSTRING(VCH_DCOA_CODE, 0, 6), SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit
FROM  VCH_DEFINATION 
GROUP BY SUBSTRING(VCH_DCOA_CODE, 0, 6)

看起来您希望显示带有完整的
VCH\u DCOA\u代码的
sum()
,但是
group by
子字符串值,因此我猜您希望这样:

SELECT v1.VCH_DCOA_CODE, v2.Debit
FROM VCH_DEFINATION v1
INNER JOIN
(
    select SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit, SUBSTRING(VCH_DCOA_CODE, 0, 6) Shortcode
    from VCH_DEFINATION
    group by SUBSTRING(VCH_DCOA_CODE, 0, 6)
) v2
    on v1.SUBSTRING(VCH_DCOA_CODE, 0, 6) = v2.Shortcode
子查询将为每个
子字符串(VCH\u DCOA\u代码,0,6)
获取
SUM()
,但随后将与每个完整的
VCH\u DCOA\u代码一起显示

但是,如果不想显示完整的
VCH\u DCOA\u代码
,则只需使用内部查询即可获得结果:

 select SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit, SUBSTRING(VCH_DCOA_CODE, 0, 6) Shortcode
 from VCH_DEFINATION
 group by SUBSTRING(VCH_DCOA_CODE, 0, 6)

看起来您希望显示带有完整的
VCH\u DCOA\u代码的
sum()
,但是
group by
子字符串值,因此我猜您希望这样:

SELECT v1.VCH_DCOA_CODE, v2.Debit
FROM VCH_DEFINATION v1
INNER JOIN
(
    select SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit, SUBSTRING(VCH_DCOA_CODE, 0, 6) Shortcode
    from VCH_DEFINATION
    group by SUBSTRING(VCH_DCOA_CODE, 0, 6)
) v2
    on v1.SUBSTRING(VCH_DCOA_CODE, 0, 6) = v2.Shortcode
子查询将为每个
子字符串(VCH\u DCOA\u代码,0,6)
获取
SUM()
,但随后将与每个完整的
VCH\u DCOA\u代码一起显示

但是,如果不想显示完整的
VCH\u DCOA\u代码
,则只需使用内部查询即可获得结果:

 select SUM(VCH_DEFINATION.VCH_CREDIT) AS Debit, SUBSTRING(VCH_DCOA_CODE, 0, 6) Shortcode
 from VCH_DEFINATION
 group by SUBSTRING(VCH_DCOA_CODE, 0, 6)

您使用哪些RDBMS满足您的需求?
子字符串(VCH\u DCOA\u code,0,6)
可以解析为多个
VCH\u DCOA\u code
s,您希望显示哪一个?这在MySQL中应该可以工作,但在大多数其他RDBMS中失败;SELECT子句包含一个字段(VCH_DCOA_代码),该字段既不是常量,也不是聚合的,也不是包含在group子句中。您的需求使用了哪些RDBMS?子字符串(VCH_DCOA_代码,0,6)可以解析为多个VCH_DCOA_代码s,您希望显示哪一个?这在MySQL中应该可以工作,但在大多数其他RDBMS中失败;SELECT子句包含一个字段(VCH_DCOA_代码),该字段既不是常量,也不是聚合字段,也不是包含在group子句中。我认为op希望选择完整的VCH_DCOA_代码我认为op希望选择完整的VCH_DCOA_代码