問題タブ [sql-order-by]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2005 - SQL の順序付けと左外部結合の順序が正しくありません
2 つのテーブルを結合し、最初のテーブルで並べ替えるビューがあります。順序が正しくないことを除いて。ときどきレコードが欠落し、最後にそれらのレコードのほとんどが順番に存在し、その最後に残りのレコードが順番に存在します。などの記録がありますので、
私の見解は以下です。参加する前に注文する必要がありますか? 私は何を間違っていますか?(私はこのビューを取得しましたが、別の db インスタンスのまったく同じビューが正しく機能します。)
(編集) ソートフィールドの型は [ID] [int] NOT NULL IDENTITY(1, 1),
mysql - ORDER BY を高速化するために必要なオプションは何ですか?
次のクエリがあります。
order by を削除すると、クエリに 0.005 秒かかります。order by を使用すると、クエリに 1.8 ~ 1.9 秒かかります。に索引がありますclient_name
。
他に何が速度を改善しますか?
編集: c.id は主キーですが、client_project に複数のレコードが存在する可能性があるため、各 ID に対して複数のレコードが生成される場合があります。また、distinct を削除すると、クエリで 0.1 秒の差が生じます。
追加:これが私のクライアントテーブルです:
MySQL 5.0 の使用
sql - SQL ORDER 文字の数値
文字として格納された数値の列があります。この列に対して ORDER BY を実行すると、次のようになります。
100
131
200
21
30
31000
など
これらの文字を数値で並べ替えるにはどうすればよいですか? 何かを変換する必要がありますか?それとも、そのための SQL コマンドまたは関数が既に存在しますか?
ありがとうございました。
mysql - MySQL テーブルを 2 列で並べ替える
MySQL テーブルを 2 つの列でソートするにはどうすればよいですか?
私が欲しいのは、最初に最高の評価、次に最新の日付でソートされた記事です。例として、これはサンプル出力になります (左の # は評価、次に記事のタイトル、次に記事の日付)
私が使用している関連するSQLは次のとおりです。
どちらかで並べ替えることはできますが、両方ではできません。
sql - MSSQLページングは、想定されていないときにランダムな行を返します
MSSQLで基本的なページングを実行しようとしています。私が抱えている問題は、(潜在的に)同様の値を持つ行でページングを並べ替えていることです。ORDERBY句は「ランダムな」結果を返しますが、これはうまく機能しません。
たとえば、
3つの行があり、それらを「評価」で並べ替えていて、すべての評価が= '5'の場合、行は「ランダムに」順序付けられているように見えます。行が毎回同じ順序で表示されるようにするにはどうすればよいですか?
フィールドが最後に編集された日時で並べ替えてみましたが、「評価」が逆に並べ替えられており、期待どおりに機能しません。
これが私がこれまでに使用しているSQLです。私はそれがデータなしで一種の混乱していることを知っているので..どんな助けも素晴らしいでしょう。
asp.net - ASP.NET の SQL - 1 つの型のみを正しく並べ替えない
私は、マイルマーカーでソートされた、選択された州間高速道路の検出器データを出力することになっているASP.NETアプリケーションに取り組んでいます。これを行う最善の方法は、移動する方向に応じて、経度 (西と東) または緯度 (北と南) で並べ替えることであると判断しました。これを入力するクエリは次のとおりです。
WebName ビューには、「I-64 WB at MP 3.1」などのさまざまなリストがあります。彼らがアクセスできる ListItems は、「I-64」としてリストされます。
4 つの異なる州間高速道路があり、I-55/70 の 1 つを除いてすべて正常に機能しています。このオプションを選択すると、リストは緯度または経度ではなく、テーブル内の順序で並べ替えられます。/が入っているのはI-55/70だけです。これは物事に影響を与えますか?
前もって感謝します。
編集: これらは、上記の例と同じスタイルで「I-55/70 WB」などとしてリスト項目にリストされます。混乱して申し訳ありません。
Edit2:それはうまくいきました。ありがとう!
mysql - MySQL-groupbyによって返される行を制御します
私はこのようなデータベーステーブルを持っています:
うまくいかなかった場合は、行のいくつかのバージョンと、いくつかのテキストデータが含まれています。
クエリを実行して、各IDの番号が最も大きいバージョンを返します。(したがって、上記の2番目と最後の行のみ)。
version_id DESCで注文しながら、group byを使用してみましたが、グループ化された後に注文されているように見えるため、これは機能しません。
誰かアイデアがありますか?できないなんて信じられない!
アップデート:
これは機能しますが、サブクエリを使用します。
sql - 結果セットが非常に大きく、インデックスで並べ替えることができない場合の「ORDERBY」の最適化
行の順序を満たすためにインデックスを使用できない場合、LIMITが小さい(つまり、一度に20行)ORDER BY句をすばやく返すにはどうすればよいですか?
テーブル「ノード」(以下に簡略化)から特定の数のタイトルを取得したいとします。ちなみに私はMySQLを使っています。
ただし、返される行を特定のユーザーがアクセスできる行のみに制限する必要があります。多くのユーザーが多数のノードにアクセスしています。私はこの情報を大きなルックアップテーブルで事前に計算しています(物事を簡単にするための試み)。主キーは両方の列をカバーし、行の存在はユーザーグループがそのノードにアクセスできることを意味します。
したがって、私のクエリには次のようなものが含まれています
...また、GROUP BYまたはDISTINCTを使用して、ユーザーの「ユーザーグループ」の2つが両方ともそのノードにアクセスできる場合でも、ノードが1回だけ返されるようにします。
私の問題は、返される行が他のviewpermissionテーブルの値に依存するため、作成日または最終更新日で結果を並べ替えるORDERBY句がインデックスを使用する方法がないように見えることです。
したがって、MySQLは、条件に一致するすべての行を検索してから、それらをすべて自分で並べ替える必要があります。特定のユーザーに100万行があり、たとえば、最新の100行または最後の更新順に並べられた100〜200行を表示する場合、DBは、ユーザーが表示できる100万行を把握して並べ替える必要があります。この100行を返す前に、この結果セット全体がそれ自体になりますよね?
これを回避するための創造的な方法はありますか?私は次のように考えてきました:
- どういうわけか、ビューパーミッションルックアップテーブルに日付を追加して、日付とパーミッションを含むインデックスを作成できるようにします。それは私が推測する可能性です。
編集:簡略化された質問
おそらく、次のように書き直すことで、質問を単純化できます。
このクエリを書き直したり、次のインデックスを作成して、インデックスを使用して順序付けを行うことができるようにする方法はありますか(行を選択するだけではありません)?
(usergroup)のインデックスを使用すると、WHERE部分をインデックスで満たすことができますが、GROUP BYは、これらの行に一時テーブルとファイルソートを強制します。WHERE句には、最初の列としてusergroupを持つインデックスが必要なため、(nodeid)のインデックスは私には何もしません。(usergroup、nodeid)のインデックスは、GROUP BYが変更される可能性のあるインデックスの最初の列ではないため、一時テーブルとファイルソートを強制します。
解決策はありますか?
c# - LINQ OrderByで[0]またはFirst()を使用する
私がこのような構造を持っている場合
アルバム
-アルバム
-ディスク
-トラック
最初のディスクの最初のトラックのタイトルでアルバムのコレクションを注文したいと思います。
次のようなことができますか(文字列を受け入れるOrderBy拡張メソッドを使用する必要があることに注意してください)?
文字列式を使用して並べ替えることができる必要があるため、OrderByメソッド(albums.OrderBy( "Track [0] .Title"))を使用する必要があります。この理由は、カスタムフレームワークが、辞書( "Track [0] .Title"など)で検索されるGridViewから返された並べ替え式( "Title"など)を使用して、正しいorderby句を取得するためです。つまり、並べ替えのフィールドと方向は、実行時に動的に決定されます。
また