我将向您展示我需要的一个例子。
这是我的表格,其中包含一些数据:
td_time | td_wave | td_userid_1 | td_userid_2
15 | 1 | 100 | 200
21 | 2 | 300 | 400
9 | 1 | 500 | 600
35 | 3 | 700 | 800
20 | 3 | 900 | 1000
88 | 4 | 1100 | 1200
我需要每个td_time_seconds
中最好的td_wave
以及与该'记录相关联的最佳用户。
这是我使用的查询:
SELECT MIN(td_time_seconds), td_wave, td_userid_1, td_userid_2
FROM test
GROUP BY td_wave
ORDER BY td_time_seconds ASC
并返回以下内容:
td_time | td_wave | td_userid_1 | td_userid_2
9 | 1 | 100 | 200
20 | 3 | 700 | 800
21 | 2 | 300 | 400
88 | 4 | 1100 | 1200
问题是,查询返回第一个td_userid_1
和td_userid_2
。
td_userid_1
应为500和600且td_userid_2
应为900和1000时 td_wave = 1
和td_wave = 3
。
答案 0 :(得分:1)
您可以使用in子句和子查询使用元组
select td_time , td_wave , td_userid_1 , td_userid_2
from my_table
where (td_wave, td_time) in (
select td_wave, min(td_time)
from my_table
group by td_wave
)
ORDER BY td_time_seconds ASC