MySQL变量/别名不可用

时间:2011-05-10 19:33:05

标签: mysql sql

所以我现在要做的是根据另一个自动计算的值来选择值的数据集。(听起来很复杂。我想不到,我对英语的了解并不多)

我的SQL代码如下所示:

SELECT ticket.ref_id AS id, COUNT( * ) AS reports, (COUNT(*)/post.views) AS
treshold,post.views AS views
FROM ticket, post
WHERE ticket.ref_id = post.id AND (reports/post.views)
GROUP BY ref_id
ORDER BY views,reports DESC

问题是,当我尝试在WHERE子句中使用阈值报告时,查询失败并说“字段列表”中没有这样的值。 我知道问题出在哪里,MySQL似乎不允许在WHERE子句中使用'自定义'字段,但我真的需要这个,我不知道如何修复它。
只使用 COUNT(*)也不起作用,因为它不知道要计算什么。

任何人都可以帮我解决这个问题吗?我认为这是完全基本的SQL,但我现在仍然坚持这一点。

1 个答案:

答案 0 :(得分:2)

对于不可改变的列,您可以使用HAVING子句而不是WHERE。它性能较差,但它可以完成这项工作。

http://dev.mysql.com/doc/refman/5.0/en/select.html

  

几乎应用了HAVING子句   最后,就在项目发送之前   客户端,没有优化。   (在HAVING之后应用LIMIT。)

     

HAVING子句可以引用任何   select_expr中命名的列或别名   在SELECT列表或外部   子查询和聚合函数