gpt4 book ai didi

sql - 如何为每个组选择固定数量的行?

转载 作者:可可西里 更新时间:2023-11-01 06:37:40 25 4
gpt4 key购买 nike

这是mysql表中的一些示例数据

a   b   distance
15 44 250
94 31 250
30 41 250
6 1 250
95 18 250
72 84 500
14 23 500
55 24 500
95 8 500
59 25 500
40 73 500
65 85 500
32 50 500
31 39 500
22 25 500
37 11 750
98 39 750
15 57 750
9 22 750
14 44 750
69 22 750
62 50 750
89 35 750
67 65 750
74 37 750
52 36 750
66 53 750
82 74 1000
79 22 1000
98 41 1000

如何查询此表,以便随机选择每个距离得到 2 行?

一个成功的查询会产生类似的东西

   a    b   distance
30 41 250
95 18 250
59 25 500
65 85 500
15 57 750
89 35 750
79 22 1000
98 41 1000

最佳答案

使用:

SELECT x.a,
x.b,
x.distance
FROM (SELECT t.a,
t.b,
t.distance
CASE
WHEN @distance != t.distance THEN @rownum := 1
ELSE @rownum := @rownum + 1
END AS rank,
@distance := t.distance
FROM TABLE t
JOIN (SELECT @rownum := 0, @distance := '') r
ORDER BY t.distance --important for resetting the rownum variable) x
WHERE x.rank <= 2
ORDER BY x.distance, x.a

关于sql - 如何为每个组选择固定数量的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2886064/

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