sql - 仅显示那些 SUM(price) 大于特定数字的行

标签 sql postgresql

我有 3 个表:

  • 客户(姓名,ID),
  • 项目(名称,价格,id),
  • 购买(id、items_id、customers_id)

当我运行时:

select 
 customers.name,
 SUM(items.price) as "price"
from items
INNER JOIN purchases
ON items.id = purchases.item_id
INNER JOIN customers
ON purchases.customer_id = customers.id
GROUP BY customers.name
ORDER BY "price"

这是我得到的结果:

"Anne Watson" "5.00"
"Craig Scott" "11.30"
"Michael Adam" "101.29"
"Jose Salvatierra" "899.00"
"Rolf Smith" "1174.50"

但是, 我只想显示那些价格超过 100 的行(在本例中是底部的 3 个)。我该怎么做?

最佳答案

这是您使用 HAVING 子句的地方。它类似于 WHERE 子句,但在 GROUP BY 之后应用。

HAVING SUM(items.price) > 100

关于sql - 仅显示那些 SUM(price) 大于特定数字的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49342565/

相关文章:

mysql - SQL 查询 : How to get data from four different tables

mysql - 三个相关列之间的标准化

python - 将生成的 UUID 插入表中 - 无法适应类型 UUID

如果满足条件,PostgreSQL 删除行,否则更新一些值

python - 如何更新表格所有行中的列?

sql - 如何在 postgres 9.5 中正确执行 upsert

sql - SSD : versioning reference data with dacpac

SQL:如何选择至少有 N 条评论的人?

具有函数 gen_random_uuid() 的 PostgreSQL 查询不适用于 Windows

postgresql - 两列之间唯一