我在SQL语句中遇到了关于子查询的问题。我想要做的是找到从另一个查询返回的平均列结果的最短时间。
SELECT userID
FROM myTable
WHERE time = MIN(...)
SELECT userID, AVG(date_time)
FROM myTable
GROUP BY userID
第二个查询将返回两次平均值并由第三方分组。
然后我的第一个查询需要找到第二个查询的最小平均时间返回值。如何将两个查询组合在一起?
我的第二个查询的示例数据如下:
user1 20
user2 45
user3 10
然后,对于我的第一个查询,我需要让用户获得最低平均值:
user3 10
提前致谢。
答案 0 :(得分:2)
如果您想要一行的平均时间最短,那么您可以这样做:
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;
答案 1 :(得分:1)
尝试此查询:
SELECT TOP 1 userID
FROM myTable
GROUP BY userID
ORDER BY AVG(date_time) ASC