gpt4 book ai didi

sql - 从 M 个可用中选择至少满足 N 个条件的

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:25 25 4
gpt4 key购买 nike

有一个问题悬而未决。它是用基本的 SQL 术语设置的,但它的本质是纯数学(所以也许我也应该访问 https://mathoverflow.net)。

我在一些理论数据库中有一个表,有 6 个字段,都是数字。还有基本条件,比如Field_1 > Field_5, Field_4 = 3等等,一共7个条件。我需要写一个选择,它满足至少其中的 4 个。

用许多逻辑条件编写长选择,例如 (cond_1 AND cond_2 AND cond_3 和 cond_4) OR (...) 不是一种方法,因为 7 个元素的 4 组合等于 140 ,而且一个人不想写那么多条件。

那么如何以简化形式编写选择?

最佳答案

一种方法是为该行满足的每个条件计数 1,并将总和与您的目标值进行比较:

SELECT * 
FROM yourtable
WHERE (
(CASE WHEN condition1 THEN 1 ELSE 0 END) +
(CASE WHEN condition2 THEN 1 ELSE 0 END) +
...
(CASE WHEN condition7 THEN 1 ELSE 0 END)
) >= 4

请注意,这将需要评估每一行的所有条件,因此您不会得到短路效果,但这很简单,也许它对您来说具有足够好的性能。

如果您使用的是 MySQL,您可以用更简单的方式编写它,因为 bool 结果等同于 0 或 1,因此您不需要 CASE 语句:

WHERE (condition1) + (condition2) + ... + (condition7) >= 4

关于sql - 从 M 个可用中选择至少满足 N 个条件的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3006957/

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