gpt4 book ai didi

mysql - 如何构建查询 WHERE X OR HAVING Y

转载 作者:行者123 更新时间:2023-11-29 10:37:39 25 4
gpt4 key购买 nike

我的数据是一个名为 sales 的父表和一个名为 sale_lines 的子表。我想从 sales 表中选择 sale.customer_id=X OR SUM(sale_lines.total)>=Y 的所有记录。

customer_id 条件将出现在 WHERE 子句中,并且在 SUM(sale_lines.total)>Y 中使用是有意义的HAVING 子句。我的问题是如何在 WHEREHAVING 子句之间建立逻辑 OR 。这可能吗?如果是这样,怎么办?

我知道如何使用子查询来做到这一点,但我正在尝试开发一个自动查询生成解决方案,并且我想避免处理子查询的复杂性。

最佳答案

您需要在 having 子句中执行此操作:

select . . .
from . . .
group by s.customer_id, . . .
having s.customer_id = X or sum(s.total) > Y;

查询可能如下所示:

select s.customer_id, sum(s.total)
from sales s
group by s.customer_id
having s.customer_id = X or sum(s.total) > Y;

由于,您无法在聚合之前进行过滤。

实际上,如果您想要销售表中的记录(而不是聚合),那么这样的操作是合适的:

select s.*
from sales s
where s.customer_id = X or
s.customer_id in (select s2.customer_id
from sales s2
group by s2.customer_id
having sum(s2.total) > Y
);

关于mysql - 如何构建查询 WHERE X OR HAVING Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46131710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com