問題タブ [top-n]

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.

0 投票する
1 に答える
430 参照

mysql - SUMによって生成された新しい列のトップ10を取得するSQLクエリ

次のようなクエリがあります。

上位10件の合計を表示するにはどうすればよいですか?

0 投票する
3 に答える
9678 参照

sql-server - Hibernateは、フェッチを使用して子の条件で上位Nを選択します

私は単純な User エンティティを持っています:

私のマッピングは次のように定義されています:

追加の規則は次のとおりです。

電話番号があり、名前が「A」で始まる上位 100 人のユーザーを選択する必要があります。しかし、電話を含むユーザー オブジェクトを読み込む必要があります。

だから私はこのクエリを行います:

そして、72人のユーザーしか獲得できませんでした。

なんで?NHibernate は左外部結合を使用して単一の TOP N 選択を生成し、SQL は同じユーザー エンティティに対して複数のレコードを返すためです。これは、一部のユーザーが複数の電話を持っているためです。しかし、それはすべて TOP N に対してカウントされるため、電話に参加しているユーザーの 100 のレコードを取得しますが、一意のエンティティはそのうちの 72 のみです。

それを行う適切な方法はありますか?

0 投票する
3 に答える
822 参照

java - 基準を持つモデルのJavaリストで上位n個の要素要素を選択する

私はMySQLテーブルを持っています

すべてのユーザーに対して、ランダムに(たとえば、1)、または基準を使用してn個の情報を選択したいと思います。テーブルが大きい場合、純粋なMySQLでは非常に集中的であることを私は知っています(私はこのソリューションを試しましたhttp://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row- per-group-in-sql /

Javaでは、テーブル全体をクエリし、データをに入れますList<ModelData>。ここで、ModelDataはゲッターとセッターのみを使用した単純なモデルです。このリストを削除するための最良の方法は何でしょうか。

0 投票する
3 に答える
401 参照

oracle - ID のリストにアクセスするときの上位 N クエリ パフォーマンス

問題を引き起こしているトップ N クエリがあります。

まず、次のようなクエリがあります。

このクエリはうまく機能します。Merchant_id、subscription_status、transaction_date のインデックスを使用して、大規模なデータ セットの上位 10 行を非常に効率的に見つけることができます。

ご覧のとおり、各段階で実際に推定される行数は 10 で、これは正しい値です。

ここで、merchant_id のセットの上位 N レコードを取得する必要があるため、クエリを変更して 2 つの Merchant_id を含めると、パフォーマンス タンクは次のようになります。

2 つのインデックス レンジ スキャンから 42K 行が出力されていることに注意してください。10 行に達しても、Oracle はインデックス レンジ スキャンを中止しなくなりました。私が考えたのは、Oracle は各 Merchant_id に対して最大 10 行を取得し、クエリによって最大 10 行が返されることを知っているということです。次に、その 10 + 10 行を並べ替え、トランザクションの日付に基づいて上位 10 行を出力しますが、それを拒否します。

マーチャントのリストをクエリに渡す必要があるときに、最初のクエリのパフォーマンスを取得する方法を知っている人はいますか? おそらくユニオンオールを使用してパフォーマンスを得ることができますが、マーチャントのリストは可変であり、1 つまたは 2 つから数 100 の間のどこかにある可能性があります。

0 投票する
3 に答える
2807 参照

sql - トップNの集計サブクエリ

バス停とバス停から10ブロック以内のすべてのコーヒーショップを示すCOFFEEというテーブルがあるとします。

[編集:問題は、手続き的ではないクエリでこれを行う方法であることを明確にするため]

そして、バス停ごとに、最も近い5つのコーヒーショップまでの平均距離を表示するクエリ(procではない)を作成する必要があります。

特定のバス停に最も近いコーヒーショップのトップ5を取得できます。

しかし、それをサブクエリとして接続し、AvgDistToFiveClosestをメインクエリで返される列にするにはどうすればよいですか?

上記のサンプルデータを考えると、クエリは次を返す必要があります。

0 投票する
4 に答える
64542 参照

r - 降順でデータフレームから上位n社を取得する方法

データフレームから上位 'n' 社を取得しようとしています。以下に私のコードを示します。

ここで、この並べ替えられたベクトルから上位 50 個の観測値を取得したいと考えています。

0 投票する
3 に答える
235 参照

c++ - 私の友達ネットワークで最も人気のあるいいねを見つける

私は友達のネットワークで最も人気のあるいいねを見つける方法に取り組んでいます。「友達ネットワークで最も人気がある」とは、「友達のいいねが一番多い」と定義されています。

各友達が一意のIDを持ち、いいねされたページがいくつかあるとします。ですから、そのような友達がたくさんいるので、一番好きな友達、そしてこれが好きな友達を見つけたいと思います。基本的には、「友達のX、Y、Zがこれが好き」のようなものを見せたいと思います。

私の最初の解決策は、マップ(逆マッピングを保存するため:like-> set)と優先度付きキュー(上位Nを見つけるため)を使用することです。これが私のアルゴリズムです(C ++ STLを使用):

STLは内部的に赤黒木を使用して優先キューのマップと最小/最大ヒープを実装しているため、このアプローチは私にはかなり速いように思われます。しかし、私に数百人の友達がいて、それぞれに数百人のいいねがあるとしたら、メモリ使用量は膨大になります。もちろん、オブジェクト全体を保存する代わりに、すべての計算にフレンドIDとライクIDを使用する必要があります。これにより、メモリ使用量が大幅に削減されます。

効率を改善する(速度を上げる、メモリを減らす)ために他にどのようなアルゴリズムまたはデータ構造を使用できますか?何らかの理由で、友達のリストをそれぞれのいいねに対して保存することはできません。実行時に計算する必要があります。私はこれをC++を使用して開発しているので、STLまたはブーストを使用するソリューションはさらに優れています。

0 投票する
1 に答える
1661 参照

sql - Oracle SQL: ID ごとに n 行を表示する

ID と URL の 2 つの列を持つテーブルがあり、ID ごとに複数の URL があります。ID ごとに最大 5 つの URL のみを抽出したい。Oracle SQLでこれを行うにはどうすればよいですか?

0 投票する
2 に答える
1061 参照

mysql - これらに関する SQL の質問

私は4つのテーブルを持っています。一人はアーティストと呼ばれる。テーブル構造は次のとおりです。

もう一方のテーブルは work と呼ばれます

トランステーブル

顧客テーブル

最初の質問は、どのアーティストが最も多くの作品を販売し、アーティストの作品が何点販売されたかです。

私のSQLクエリは以下です

テーブル全体を取得する必要がありますが、カウントが最も高い最初の行のみを表示したいのですが、どうすればよいですか??

qns 2 は、どのアーティストの作品が最高の平均利益 (つまり、アーティストによる作品の販売ごとに得られる利益の平均) をもたらしたかであり、その金額はいくらか.

私のSQLクエリは以下です

私はそれを実行することができません

0 投票する
2 に答える
1416 参照

sql - Oracleで最高値のレコードを表示するには?

次の構造を持つ 4 つのテーブルがあります。

artist:

work:

Trans:

Customer:

最初の質問はartsold、どのアーティストの作品が最も多く、そのアーティストの作品の販売数です。

私のSQLクエリはこれです:

テーブル全体を取得する必要がありますが、カウントが最も高い最初の行のみを表示したいのですが、どうすればよいですか??

挿入しようとしWHERE ROWNUM <=1 ましたが、アーティストIDが1で表示されます

qns 2 は、どのアーティストの作品が最高の平均利益 (つまり、アーティストによる作品の各販売で得られた利益の平均) をもたらしたかであり、その金額はいくらか.

私のSQLクエリは次のとおりです。

私はそれを実行することができません

以下のクエリを試しましたが、それでも取得できず、右括弧がありませんというエラーが発生し続けます