1

假设我有以下表结构:

Field1 Field2 Field3
val1   valb_1 date
val1   valb_2 date
val1   valb_3 date
val2   valb_4 date
val3   valb_5 date

我将如何限制 Field1 中最多 5 个不同的值,其中字段可能填充与示例建议的完全相同的值 "val1" ,以及 Field2 中的最多 200 个值,其中字段始终不同价值。按日期顺序排序。

还有如何使其尽可能等同于 Field1 的限制 5,例如 200 限制:50 属于 val1,100 属于 val2,100 属于 field1 的 val3,即 250,val 2 中有 100 和在 val 3 中为 100,理想情况下,200 限制是在 val1 中选择 50,在 val 2 和 3 中选择 75。

4

1 回答 1

0

我不完全确定你想要实现什么,但这样想:

是否可以通过 3 个不同的查询来解决,并将结果与​​ UNION 放在一起?

或者您所说的这些限制是否相关,因此如果对于字段 1 的 5 个值,它们与字段 2 中的 200 个不同值一起出现。

CREATE VIEW F1LIMIT5  as SELECT DISTINCT Field1 from MYTABLE limit 5;
CREATE VIEW F2LIMIT200 as SELECT DISTINCT Field2 from MYTABLE limit 200;
SELECT * from MYTABLE where Field1 in (SELECT * FROM F1LIMIT5) and Field2 in (SELECT * FROM F2LIMIT200) order by Field3 desc ;

但这可能会给您超过 200 条记录。你可以在最后添加一个 LIMIT 200 来做到这一点,但我什至不确定它是否是你想要的。该技术是将事情分解成小步骤,然后在此基础上进行构建。我发现使用视图比复杂的查询要好,因为您可以一路测试每个部分,以确保得到您想要的

于 2012-10-05T14:03:06.853 回答