2016-07-08 5 views
-1

最大スコアを持つ行を選択したいのですが、最大値を持つ行が多いため、別の列の値が最も高い行が必要になります。この列の値が異なると考えてください。このためのSQLiteクエリを書くにはどうすればいいですか?これまでの私の考えです:SQL:最大値と別の条件で行を選択するにはどうすればいいですか?

SELECT NAME, MAX(SCORE) FROM PLAYERS ORDER BY SECOND_COLUMN; 

しかし、それは動作していないようです。それ、どうやったら出来るの?助けてください。おかげさまで

答えて

1

私が正しく理解していれば、あなたはorder bylimitを使ってやりたいことができます。

select p.* 
from players p 
order by score desc, second_column 
limit 1; 

MAX(SCORE)が集計クエリなるためあなたのクエリは動作しません。ただし、GROUP BYがないため、NAMEは構文エラーです。また、ORDER BYSECOND_COLUMNは、集約のために定義されていません。

+0

を返しますsecond_column desc'も同様に – apokryfos

+0

多くの、多くのありがとう! – TheRandomGuy

0
SELECT NAME, MAX(SCORE) FROM PLAYERS GROUP BY NAME ORDER BY MAX(SCORE); 
0

次の操作を行うことができます

SELECT NAME, SCORE 
FROM PLAYERS 
WHERE SCORE>=(SELECT MAX(SCORE) FROM PLAYERS) 
ORDER BY SECOND_COLUMN DESC 
LIMIT 1 

これは二列でオーダーし、同じスコアですべての名前を取得し、唯一の私は、それは `すべきだと思います、最大1

関連する問題