Mysql 组函数的使用无效-#1111

Mysql 组函数的使用无效-#1111,mysql,sql,Mysql,Sql,我有两张桌子 表verkoper 贝斯特林根表 我的问题是: SELECT v.naam, SUM(COUNT(b.status) * 1.50) FROM verkoper AS v INNER JOIN bestellingen AS b ON b.verkoper = v.id WHERE b.status = 'retour' GROUP BY b.verkoper 它给出了错误#1111-组函数的无效使用 有人有想法吗?我

我有两张桌子

表verkoper

贝斯特林根表

我的问题是:

  SELECT v.naam, 
         SUM(COUNT(b.status) * 1.50)
    FROM verkoper AS v INNER JOIN 
         bestellingen AS b ON b.verkoper = v.id
   WHERE b.status = 'retour'
GROUP BY b.verkoper
它给出了错误
#1111-组函数的无效使用

有人有想法吗?

我想这可能就是你想要的:

SELECT v.naam, COUNT(*)*1.50
FROM verkoper v INNER JOIN
     bestellingen b
     ON b.verkoper = v.id
WHERE b.status = 'retour'
GROUP BY v.naam;
注:

  • groupby
    键应与查询中的未聚合列匹配
  • 您可以使用
    count(*)
    count(1)
    对所有行进行计数。这样打字更简单
  • 没有理由在
    SUM()中嵌套
    COUNT()

    • 我想这可能就是你想要的:

      SELECT v.naam, COUNT(*)*1.50
      FROM verkoper v INNER JOIN
           bestellingen b
           ON b.verkoper = v.id
      WHERE b.status = 'retour'
      GROUP BY v.naam;
      
      注:

      • groupby
        键应与查询中的未聚合列匹配
      • 您可以使用
        count(*)
        count(1)
        对所有行进行计数。这样打字更简单
      • 没有理由在
        SUM()中嵌套
        COUNT()

      您不能选择不属于分组的列(此处:v.naam)。我猜不允许在聚合中进行聚合。Mysql还允许这种奇怪的方式编写
      分组,因此我们无法猜测您想要实现什么。您能否添加分组依据无效的预期结果。对于较新的MySQL版本,将返回错误(除非处于兼容模式),对于较旧的MySQL版本,将返回不可预测的结果。常规GROUP BY规则说:如果指定了GROUP BY子句,则SELECT列表中的每个列引用必须标识一个分组列或是集合函数的参数!您不能选择不属于分组(此处:v.naam)的列。我想,不允许在聚合中进行聚合。Mysql还允许这种奇怪的方式编写
      分组,因此我们无法猜测您想要实现什么。您能否添加分组依据无效的预期结果。对于较新的MySQL版本,将返回错误(除非处于兼容模式),对于较旧的MySQL版本,将返回不可预测的结果。常规GROUP BY规则说:如果指定了GROUP BY子句,则SELECT列表中的每个列引用必须标识一个分组列或是集合函数的参数!天啊!谢谢,我真是太蠢了。。。甚至都没试过!谢谢,我真是太蠢了。。。甚至都没试过