所以我现在要做的是根据另一个自动计算的值来选择值的数据集。(听起来很复杂。我想不到,我对英语的了解并不多)
我的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,但我现在仍然坚持这一点。
答案 0 :(得分:2)
对于不可改变的列,您可以使用HAVING
子句而不是WHERE
。它性能较差,但它可以完成这项工作。
http://dev.mysql.com/doc/refman/5.0/en/select.html
几乎应用了HAVING子句 最后,就在项目发送之前 客户端,没有优化。 (在HAVING之后应用LIMIT。)
HAVING子句可以引用任何 select_expr中命名的列或别名 在SELECT列表或外部 子查询和聚合函数