Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql语句有什么问题_Mysql_Sequelpro - Fatal编程技术网

mysql语句有什么问题

mysql语句有什么问题,mysql,sequelpro,Mysql,Sequelpro,这是我的陈述,我想做的是得到每个用户每个订单的平均数量,遇到问题,不知道如何解决, 谢谢你的帮助 SELECT usuarios.email, AVG(pedidos_onlines.total), CASE WHEN p.nombre like '%colombia%' and AVG(pedidos_onlines.total) <34873 then 'A' WHEN p.nombre like '%colombia%' and AVG(pedidos_onlines.total

这是我的陈述,我想做的是得到每个用户每个订单的平均数量,遇到问题,不知道如何解决, 谢谢你的帮助

SELECT usuarios.email, AVG(pedidos_onlines.total), 
CASE WHEN p.nombre like '%colombia%' and AVG(pedidos_onlines.total) <34873 then 'A'
 WHEN p.nombre like '%colombia%' and AVG(pedidos_onlines.total) >= 52309 then 'B'
 ELSE 'C'
end as SegmentColombia,
CASE WHEN p.nombre like '%peru%' and AVG(pedidos_onlines.total) <41 then 'A'
 WHEN p.nombre like '%peru%' and AVG(pedidos_onlines.total) >= 62 then 'B'
 ELSE 'C'
end as SegementPeru
CASE WHEN p.nombre like '%peru%' and AVG(pedidos_onlines.total) <13 then 'A'
 WHEN p.nombre like '%peru%' and AVG(pedidos_onlines.total) >= 19 then 'B'
 ELSE 'C'
 end as SEGMENT Ecudador
FROM pedidos_onlines
LEFT JOIN usuarios ON usuarios.id = pedidos_onlines.usuario_id 
LEFT JOIN ciudades as c on c.id = pedidos_onlines.ciudad_id
LEFT JOIN paises as p on p.id = c.pais_id
WHERE usuarios.email IS NOT NULL
GROUP BY usuarios.email, p.nombre
选择usuarios.email,平均值(pedidos_onlines.total),
当p.nombre如“%columbia%”和平均值(pedidos_onlines.total)=52309时,则为“B”
其他'C'
结束于哥伦比亚,
当p.nombre如“%peru%”和平均值(pedidos_online.total)=62时,则为“B”
其他'C'
以SegementPeru结束
当p.nombre如“%peru%”和平均值(pedidos_online.total)=19时,则为“B”
其他'C'
作为段Ecudador结束
来自pedidos_在线
在usuarios.id=pedidos\u onlines.usuario\u id上左加入usuarios
在c.id=pedidos\U onlines.ciudad\U id上以c的形式左键连接ciudades
作为p.id=c.pais\u id上的p的左连接对
其中usuarios.email不为空
按usuarios.email分组,p.nombre
错误消息:


您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 当p.nombre类似于“%ecuador%”和
平均值(pedidos_onlines.total)您在第二个案例的末尾漏掉了一个逗号:

CASE WHEN p.nombre like '%peru%' and AVG(pedidos_onlines.total) <41 then 'A'
 WHEN p.nombre like '%peru%' and AVG(pedidos_onlines.total) >= 62 then 'B'
 ELSE 'C'
end as SegementPeru
需要

`SEGMENT Ecudador`

或者您可以删除空间。

它应该离您需要的地方不远

SELECT u.email, AVG(po.total), 
CASE WHEN p.nombre like '%colombia%' and AVG(po.total) <34873 then 'A'
 WHEN p.nombre like '%colombia%' and AVG(po.total) >= 52309 then 'B'
 ELSE 'C'
end as SegmentColombia,
CASE WHEN p.nombre like '%peru%' and AVG(po.total) <41 then 'A'
 WHEN p.nombre like '%peru%' and AVG(po.total) >= 62 then 'B'
 ELSE 'C'
end as SegementPeru,
CASE WHEN p.nombre like '%peru%' and AVG(po.total) <13 then 'A'
 WHEN p.nombre like '%peru%' and AVG(po.total) >= 19 then 'B'
 ELSE 'C'
 end as `SEGMENT Ecudador`
FROM pedidos_onlines as po
LEFT JOIN usuarios as u ON u.id = po.usuario_id 
LEFT JOIN ciudades as c on c.id = po.ciudad_id
LEFT JOIN paises as p on p.id = c.pais_id
WHERE u.email IS NOT NULL
GROUP BY u.email, p.nombre, 
CASE WHEN p.nombre like '%colombia%' and AVG(po.total) <34873 then 'A'
     WHEN p.nombre like '%colombia%' and AVG(po.total) >= 52309 then 'B'
     ELSE 'C'
    end,
    CASE WHEN p.nombre like '%peru%' and AVG(po.total) <41 then 'A'
     WHEN p.nombre like '%peru%' and AVG(po.total) >= 62 then 'B'
     ELSE 'C'
    end,
    CASE WHEN p.nombre like '%peru%' and AVG(po.total) <13 then 'A'
     WHEN p.nombre like '%peru%' and AVG(po.total) >= 19 then 'B'
     ELSE 'C'
     end
选择u.email,平均(采购订单总数),
当p.nombre如“%colombia%”和平均(采购订单总额)=52309时,则为“B”
其他'C'
结束于哥伦比亚,
当p.nombre如“%peru%”和平均(po.total)=62时,则为“B”
其他'C'
以SegementPeru结尾,
当p.nombre如“%peru%”和平均值(po.total)=19时,则为“B”
其他'C'
以`段Ecudador结尾`
来自pedidos_在线作为po
在u.id=po.usuario\u id上以u的形式左连接usuarios
在c.id=po.ciudad\u id上以c的形式左连接ciudades
作为p.id=c.pais\u id上的p的左连接对
其中u.email不为空
通过u.email分组,p.nombre,
当p.nombre如“%colombia%”和平均(采购订单总额)=52309时,则为“B”
其他'C'
完,,
当p.nombre如“%peru%”和平均(po.total)=62时,则为“B”
其他'C'
完,,
当p.nombre如“%peru%”和平均值(po.total)=19时,则为“B”
其他'C'
结束

我不知道,但我猜你知道。你收到错误信息了吗?如果是的话,把它放在问题中。结果不是你所期望的吗?如果是这样的话,把你得到的和你想要的都放在问题中。这是我收到的最新错误消息,你的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解当p.nombre如“%ecuador%”和AVG(pedidos_onlines.total)时可使用的正确语法。非常感谢,但是现在我收到此错误消息您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“Ecudador,FROM pedidos_onlines LEFT JOIN usuarios ON usuarios.id=pedidos_onlin”附近使用的正确语法。第13行有一个空格:“SEGMENT Ecudador”,它认为您的字段有别名,然后使用逗号,而不是“field‘space’field”。如果需要一个空格,你可以在两个名字周围放一个`符号。或者你可以把空间移走。我希望这会有帮助。如果有,请确保根据网站的浏览将其标记为最佳答案:。
`SEGMENT Ecudador`
SELECT u.email, AVG(po.total), 
CASE WHEN p.nombre like '%colombia%' and AVG(po.total) <34873 then 'A'
 WHEN p.nombre like '%colombia%' and AVG(po.total) >= 52309 then 'B'
 ELSE 'C'
end as SegmentColombia,
CASE WHEN p.nombre like '%peru%' and AVG(po.total) <41 then 'A'
 WHEN p.nombre like '%peru%' and AVG(po.total) >= 62 then 'B'
 ELSE 'C'
end as SegementPeru,
CASE WHEN p.nombre like '%peru%' and AVG(po.total) <13 then 'A'
 WHEN p.nombre like '%peru%' and AVG(po.total) >= 19 then 'B'
 ELSE 'C'
 end as `SEGMENT Ecudador`
FROM pedidos_onlines as po
LEFT JOIN usuarios as u ON u.id = po.usuario_id 
LEFT JOIN ciudades as c on c.id = po.ciudad_id
LEFT JOIN paises as p on p.id = c.pais_id
WHERE u.email IS NOT NULL
GROUP BY u.email, p.nombre, 
CASE WHEN p.nombre like '%colombia%' and AVG(po.total) <34873 then 'A'
     WHEN p.nombre like '%colombia%' and AVG(po.total) >= 52309 then 'B'
     ELSE 'C'
    end,
    CASE WHEN p.nombre like '%peru%' and AVG(po.total) <41 then 'A'
     WHEN p.nombre like '%peru%' and AVG(po.total) >= 62 then 'B'
     ELSE 'C'
    end,
    CASE WHEN p.nombre like '%peru%' and AVG(po.total) <13 then 'A'
     WHEN p.nombre like '%peru%' and AVG(po.total) >= 19 then 'B'
     ELSE 'C'
     end