0

「フィールドの最大値に対応するレコードを選択する」という回答が網羅されていることは知っていますが、正しい行を取得するために ORDER BY 句を使用することを誰も提案しなかったのはなぜだろうと思っていました。

たとえば、次のテーブルがあります。

| other_field | target_field |
| 1           | 15           |
| 2           | 25           |
| 3           | 20           |

other_field最大値に対応する値を見つけたいtarget_field(たとえば、この場合は 2 を見つけたい)。

多くの人が GROUP と JOIN の使用を提案しましたが、私の最初のアイデアは以下を使用することでした:

SELECT other_field FROM table ORDER by target_field DESC LIMIT 1;

これに問題はありますか?私が考えることができる唯一の問題は、おそらく注文に時間がかかり、最大値を見つけるだけであるということです(ただし、JOINにも時間がかかる場合があります)。

ありがとう!

編集:返信が遅くなって申し訳ありません。私はここに来たばかりで、通知用の電子メールを受け取ることを期待していました:)

4

3 に答える 3

0

次のクエリを使用してみてください。

select top 1 other_field from tester order by target_field desc;

これは、Sybase でうまく機能します。他のデータベースについては不明です。

于 2013-09-13T09:56:08.977 に答える