gpt4 book ai didi

mysql - 通过值的唯一数量定义 LIMIT

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:48 24 4
gpt4 key购买 nike

有如下SQL查询

SELECT service_id, service_box_id FROM table1 WHERE 1 LIMIT 10

结果如下表

service_id  | service_box_id 
12 | 1
12 | 2
12 | 3
21 | 1
21 | 2
33 | 1
33 | 2
33 | 3
33 | 4
33 | 5

因此,查询显示 10 行,在本例中,它们具有 3 个唯一的 service_id 值 - 12、21、33。

是否可以在查询中定义“LIMIT”以显示 10 个唯一的 service_id 值,而无需在它之前运行另一个 sql 查询?或任何其他限制查询输出的方法。

期望的输出:

service_id  | service_box_id 
12 | 1
12 | 2
12 | 3
21 | 1
21 | 2
33 | 1
33 | 2
33 | 3
33 | 4
33 | 5
34 | 1
34 | 2
38 | 1
43 | 1
43 | 2
43 | 3
44 | 1
44 | 2
45 | 1
45 | 2
46 | 1
46 | 2
48 | 1
48 | 2

因此,10 个唯一的 service_id - 12、21、33、34、38、43、44、45、46、48,但总共 24 行。

最佳答案

如果我理解正确,您可以尝试在 where 子查询中使用 DistinctLIMIT

SELECT service_id, service_box_id 
FROM table1
WHERE service_id in (
SELECT service_id
FROM (
SELECT Distinct service_id
FROM table1
ORDER BY service_id
LIMIT 10
) t1
)

| service_id | service_box_id |
| ---------- | -------------- |
| 12 | 1 |
| 12 | 2 |
| 12 | 3 |
| 21 | 1 |
| 21 | 2 |
| 33 | 1 |
| 33 | 2 |
| 33 | 3 |
| 33 | 4 |
| 33 | 5 |
| 34 | 1 |
| 34 | 2 |
| 38 | 1 |
| 43 | 1 |
| 43 | 2 |
| 43 | 3 |
| 44 | 1 |
| 44 | 2 |
| 45 | 1 |
| 45 | 2 |
| 46 | 1 |
| 46 | 2 |
| 48 | 1 |
| 48 | 2 |

View on DB Fiddle

关于mysql - 通过值的唯一数量定义 LIMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53684119/

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