SQL 从第二个查询返回的 AVG() 中获取 MIN() 的语句

SQL statement to get the MIN() from the AVG() returned from second query

我有一个关于 SQL 语句中的子查询的问题。我想做的是从另一个查询中找到平均列结果 return 的最短时间。

SELECT userID
FROM myTable
WHERE time = MIN(...)

SELECT userID, AVG(date_time)
FROM myTable
GROUP BY userID

第二个查询会return我取两次之间的平均值并由第三方分组。

然后我的第一个查询需要从我的第二个查询中找到最小平均时间 return。如何将这两个查询组合在一起?

我的第二个查询的示例数据如下:

user1  20
user2  45
user3  10

然后对于我的第一个查询,我需要获得具有最小平均值的用户:

user3  10

提前致谢。

如果你想要平均时间最少的一行,那么你可以这样做:

SELECT TOP 1 userID
FROM myTable
GROUP BY userID
ORDER BY AVG(date_time) ASC;

如果你想要多行然后使用TOP WITH TIES:

SELECT TOP (1) WITH TIES userID
FROM myTable
GROUP BY userID
ORDER BY AVG(date_time) ASC;

试试这个查询:

SELECT TOP 1 userID
FROM myTable
GROUP BY userID
ORDER BY AVG(date_time) ASC