gpt4 book ai didi

mysql - 在where条件下使用val有效吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:36 24 4
gpt4 key购买 nike

我的查询是

SELECT count(crm_clients.client_id) as count, (((sum(expectd_rev)/1000) +((COALESCE((sum(COALESCE(client_rating,0))/count(crm_client_assign.client_id)),0)*100)/5))/392.10000000)*100 as val
FROM (`crm_clients`)
JOIN `crm_project_assign` ON `crm_clients`.`client_id` = `crm_project_assign`.`client_id`
JOIN `crm_projects` ON `crm_project_assign`.`project_id` = `crm_projects`.`project_id`
LEFT JOIN `crm_client_assign` ON `crm_clients`.`client_id` = `crm_client_assign`.`client_id`
WHERE `ctype` = 2 and crm_clients.client_id in (select client_id from crm_project_assign)

group by crm_clients.client_id
order by val desc

是否可以在where条件下使用val?有什么解决办法吗?

最佳答案

这是不允许的,原因有二。首先是您不能在 where 子句中使用列别名。更重要的原因(在我看来)是 val 是由聚合函数组成的。您不能在 where 子句中使用聚合函数。

解决方案很简单:使用having 子句。这在 group by 之后,您可以这样做:

having val > 10

或者任何你想要的。

关于mysql - 在where条件下使用val有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24931345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com