mysql - 组函数的无效使用 - MySQL

标签 mysql

运行选择查询时出现此错误,请指教。

Error No : 1111
Error : Invalid use of group function

查询:

SELECT cm.contactid, cm.firstname, cm.surname, cm.mobile, COUNT( * ) total
FROM sales_master as sm, contact_master as cm
WHERE sm.contactid = cm.contactid 
AND cm.mobile != '' AND orderdate>='2012-12-18' AND orderdate<='2013-03-18' 
GROUP BY sm.contactid 
HAVING COUNT(*) >= 1 
ORDER BY COUNT(*) DESC, cm.firstname ASC

最佳答案

像这样更改您的查询。使用 join 而不是 cartisian。如果 cm.orderdate 的类型是 Date,则从以下查询中删除 DATE()。并在 GROUP BY 和 ORDER BY 中使用别名 total 而不是 Count(*) 。

SELECT
  cm.contactid,
  cm.firstname,
  cm.surname,
  cm.mobile,
  COUNT(cm.contactid)    total
FROM sales_master as sm
  LEFT JOIN contact_master as cm
    ON sm.contactid = cm.contactid
WHERE 
    AND cm.mobile != ''
    AND DATE(cm.orderdate) >= '2012-12-18'
    AND DATE(cm.orderdate) <= '2013-03-18'
GROUP BY cm.contactid
HAVING total >= 1
ORDER BY total DESC, cm.firstname ASC

关于mysql - 组函数的无效使用 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15470365/

相关文章:

php - WordPress:按月对帖子进行分组?

安卓 GCM : Problems storing registrationIDs on Database

php - 帮助计算 mysql 结果

MYSQL 查找重复值的计数

php - 需要在 php 中使用 jquery 获取选中的输入和复选框值

php - 使用 PHP 在 MySQL 中转义 % 符号

mysql - 无法在 MySQL 中使用带有日期的 Between 子句

mysql - 仅对原始查询使用 sequelize

php - PHP 中的 mysql_query 参数

php - php for循环可以在mysql查询中使用来插入数据吗?