gpt4 book ai didi

Mysql 查询基于给定总条目限制的不同条目数选择相等的存储桶

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

我有以下要求。

我如何根据不同条目的总数/数量的比率选择相等的桶(或几乎相等的桶)。例子:如果表中的数据是

10 u1 
11 u1
12 u2
13 u2
14 u2
15 u3
16 u3
17 u3
18 u3
19 u3
20 u4
21 u4
22 u4
23 u4
24 u4
25 u4
26 u4
27 u4
28 u4
29 u4

现在第二列中有 4 个不同的值,如果我想选择 20 行,结果应该/可能看起来像

10 u1 
11 u1
12 u2
13 u2
14 u2
15 u3
16 u3
17 u3
18 u3
19 u3
20 u4
21 u4
22 u4
23 u4
24 u4

u1 和 u2 没有 5 (20/4) 个条目,所以只返回可用的条目有人可以帮忙吗?

最佳答案

这是一个“老派”的解决方案...

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(id SERIAL PRIMARY KEY
,u INT NOT NULL
);

INSERT INTO my_table VALUES
(10,1),
(11,1),
(12,2),
(13,2),
(14,2),
(15,3),
(16,3),
(17,3),
(18,3),
(19,3),
(20,4),
(21,4),
(22,4),
(23,4),
(24,4),
(25,4),
(26,4),
(27,4),
(28,4),
(29,4);

SELECT id
, u
FROM
( SELECT x.*
, COUNT(*) running
FROM my_table x
JOIN my_table y
ON y.u = x.u
AND y.id <= x.id
GROUP
BY x.id
ORDER
BY running
, u
LIMIT 15
) a
ORDER
BY id;
+----+---+
| id | u |
+----+---+
| 10 | 1 |
| 11 | 1 |
| 12 | 2 |
| 13 | 2 |
| 14 | 2 |
| 15 | 3 |
| 16 | 3 |
| 17 | 3 |
| 18 | 3 |
| 19 | 3 |
| 20 | 4 |
| 21 | 4 |
| 22 | 4 |
| 23 | 4 |
| 24 | 4 |
+----+---+

关于Mysql 查询基于给定总条目限制的不同条目数选择相等的存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53277982/

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