简体   繁体   English

使用内部联接时求和的条件?

[英]Condition on Sum when using inner join?

I have two tables : 我有两个表:

a
idA User Size 
b
idB status name

User is a foreign key from a to b . User是从ab的外键。

This query worked well: 该查询运行良好:

SELECT a.User,a.size,b.status,b.name, SUM(a.size) as TotalSize
FROM a
LEFT OUTER JOIN b
ON a.User=b.idB
WHERE a.size> 10
GROUP BY User
ORDER BY TotalSize DESC

but when I tried to PUT A condition on the sum it fails: 但是当我尝试对总和输入条件时,它失败了:

SELECT a.User,a.size,b.status,b.name, SUM(a.size) as TotalSize
FROM a
LEFT OUTER JOIN b
ON a.User=b.idB
WHERE TotalSize > 10  # or WHERE SUM(a.size)  > 10
GROUP BY User
ORDER BY TotalSize DESC

What should I do? 我该怎么办?

Use a having clause (which goes after the group by ): 使用having子句(在group by后面):

HAVING TotalSize > 10  # or HAVING SUM(a.size)  > 10

This is the right way to filter the results from an aggregation function. 这是从聚合函数中过滤结果的正确方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM