mysql - 选择具有差异的对象在哪里
问题描述
我试图找到一种方法来运行它:
SELECT
s.system_number,
s.total_points,
p.licensed_points,
SUM(p.licensed_points) - SUM(s.total_points) AS difference_points
FROM
server AS s
LEFT JOIN
practice AS p ON p.system_number = s.system_number
WHERE
difference_points < 0
我的目标是仅选择差异点 < 0 的对象
请问有人知道怎么做吗?
谢谢
解决方案
- 在这里使用聚合函数
Sum()
没有Group By
意义。你需要做一个Group By
ons.system_number
。 - 然后,您可以使用
Having
子句来考虑difference_points
小于 0 的情况。
请尝试以下操作:
SELECT
s.system_number,
SUM(s.total_points),
SUM(p.licensed_points),
SUM(p.licensed_points) - SUM(s.total_points) AS difference_points
FROM
server AS s
LEFT JOIN
practice AS p ON p.system_number = s.system_number
GROUP BY
s.system_number
HAVING
difference_points < 0
推荐阅读
- mysql - 带有确切短语的 MySQL 全文查询不起作用
- c++ - 如果您的头文件与源文件位于同一目录中,如何在 Code::blocks 的源代码中包含用户定义的头文件?
- amazon-web-services - AWS 主路由表
- c# - LINQ 语法:如何有相同的目的?
- python-3.x - 使用python从html文件中的多个表中获取特定表
- emeditor - 使用 Emeditor 将 unicode 字符转换为可读格式?
- function - How can I use Perl's format function?
- c# - 如何为 AzureServiceBus 主题配置 RequiresDuplicateDetection
- android - 在代理连接下未找到适用于 Android 的信任锚
- php - Codeigniter 3,绑定参数是否可以保护我免受 SQL 注入?