2016-10-22 8 views
1

SQL文のサブクエリに関する質問があります。私がしようとしているのは、別のクエリから返された平均列結果で最小限の時間を見つけることです。2番目のクエリから返されたAVG()からMIN()を取得するSQL文

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

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

2番目のクエリは、2回目の平均とサードパーティによるグループを返します。

私の最初のクエリは、2番目のクエリからの平均平均時間の戻り値を見つける必要があります。両方のクエリを組み合わせるにはどうすればよいですか?

私の2番目のクエリのためのサンプルデータが似ている:事前に

user3 10 

ありがとう:

user1 20 
user2 45 
user3 10 

は、その後、私の最初のクエリのために、私は最低平均を持つユーザーを取得する必要があります。

+0

サンプルデータと望ましい結果は、あなたがしたいことを明確にします。 –

+0

SQL Serverを使用しているので、私はMySQLタグを削除しました。 –

答えて

2

あなたが最小の平均時間で1行をしたい場合は、あなたが行うことができます:

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; 
+0

私はMSSQLを使用しており、LIMIT – hyperfkcb

+0

で私にエラーメッセージを投げています。申し訳ありませんが、私はTOP 1を使いました。ところで、複数の行の意味は? MINはちょうど最小のものを選ぶだろうと思ったのですから? – hyperfkcb

+0

@ 2dollar20cents。 。 。質問はもともと "mysql"とタグ付けされていました。私はSQL Serverの答えを修正しました。 –

1

この文字列で検索してください:

SELECT TOP 1 userID 
FROM myTable 
GROUP BY userID 
ORDER BY AVG(date_time) ASC 
関連する問題