mysql - MariaDB 仅选择大于的结果

标签 mysql sql mariadb adminer

我有一个如下所示的查询:

select uid,leadcount,salescount,leadcount/salescount as diff from 
(
SELECT x.uid, COUNT(*) leadcount, COUNT(DISTINCT x.fid)
FROM total_leads AS x
WHERE x.uid BETWEEN 1 AND 5
GROUP BY x.uid
) t1 left join 
(
SELECT ud.UserId, COUNT(*) salescount, COUNT(DISTINCT ud.SalesID)
FROM total_sales AS ud
WHERE ud.UserId BETWEEN 1 AND 5
GROUP BY ud.UserID
) t2 on t1.uid=t2.UserId

结果是:

enter image description here

我试图只显示 diff 大于 2.5 的结果(所以在这种情况下只显示 uid 5 应该在输出中可见)。

我尝试使用 WHERE diff >= 2.5 但我得到了“你的 SQL 语法有错误”

Working example of MySQL

最佳答案

只需在 WHERE 子句中重复原始表达式而不是使用别名:

SELECT uid leadcount, salescount, leadcount/salescount AS diff
FROM
(
    ...
) t
WHERE leadcount/salescount >= 2.5;

WHERE 子句中引用 diff 的问题在于它尚不可用。另外,假设您不打算聚合,请参阅戈登的另一个选项的答案。但是,使用 HAVING 只是 MySQL 或 MariaDB 上的一个选项。

关于mysql - MariaDB 仅选择大于的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54739655/

相关文章:

php - SQL 更新查询在 PHP 中不起作用

sql - 检索所有记录 - 内连接

mysql - DROP CONSTRAINT 无法找到约束

c# - 如何使用键连接将值插入 SQL 字段

php - 为什么我在使用 PHPmyadmin 和 mysql 的 PHP 中出现表不存在错误?

sql - 选择查询的良好性能的主键选择

sql - 使用 WHERE 子句的时间戳事件行的差异

command-line - 如何在 Fedora 19 中通过命令行生成数据库图表?

mysql - mysql(mariadb)启动失败

mysql - 如何通过zerofill进行mysql分组?