gpt4 book ai didi

MYSQL - 选择满足许多计数条件的行

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

我有一个包含 4 列的表格(比方说表格)-

Product_ID, Designer, Exclusive, Handloom

ID 是主键,其他 3 列的值为 0 或 1。

例如 - Designer 中的 0 表示该产品不是设计器,1 表示它是设计器。

我想写下一个查询,从给定的 16 行中选择 6 行,具有 >=4 Designer>=4 Exclusive> =4 手摇织机 产品。 6行从上开始,不限于前6行(因为可以有多种组合,所以我们从上开始)

我无法找到明确的解决方案。下面是Table表的数据:

   Code         Designer    Exclusive   Handloom
A 1 0 1
B 1 0 0
C 0 0 1
D 0 1 0
E 0 1 0
F 1 0 1
G 0 1 0
H 0 0 0
I 1 1 1
J 1 1 1
K 0 0 1
L 0 1 0
M 0 1 0
N 1 1 0
O 0 1 1
P 1 1 0

如果我手动解决它,结果将是带有 Product_ID: a,f,i,j,n,o 的行

最佳答案

这会不会非常慢?

select t1.Code, t2.Code, t3.Code, t4.Code, t5.Code, t6.Code
from Table t1, Table t2, Table t3, Table t4, Table t5, Table t6
where t1.Code < t2.Code and t2.Code < t3.Code
and t3.Code < t4.Code and t4.Code < t5.Code and t5.Code < t6.Code
and t1.Designer + t2.Designer + t3.Designer + t4.Designer + t5.Designer + t6.Designer >= 4
and t1.Exclusive + t2.Exclusive + t3.Exclusive + t4.Exclusive + t5.Exclusive + t6.Exclusive >= 4
and t1.Handloom + t2.Handloom + t3.Handloom + t4.Handloom + t5.Handloom + t6.Handloom >= 4
order by t1.Code, t2.Code, t3.Code, t4.Code, t5.Code, t6.Code
limit 1;

您似乎想要满足您条件的按字母顺序排列的最低产品代码组合。我不知道 6 向交叉连接是否会成为性能问题,但我相信它符合要求并且可能是一个合理的起点。

根据您事先对数据的了解程度,您可以通过消除仅设置了一个标志的行(以及行组合的总数)来提高性能。

我在 SQL Server 上试过这个。如果没有一行的限制,它会返回 157 个匹配项。 AFIJNP 是 69 号。有 7 个包括 B,其中第一个是 ABDIJO。如果我将查询更改为首先对 t6.Code 进行排序,则结果为 ADEFIJ。所以我不知道我是否理解你的那部分要求。

关于MYSQL - 选择满足许多计数条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29567925/

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