問題タブ [limit-per-group]

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 に答える
639 参照

sqlite - グループごとの列の 3 つの最大値の合計

CS の質問サイトでこの問題に遭遇しましたが、これを行う方法がわかりません。

問題

私の最初の解決策は、このコードで行き詰まりました

ただし、最大の 3 つの値を合計するために合計に制限を設ける方法はありません。

もう 1 つのアイデアは、サブクエリを作成して 2 つのテーブルを結合することでした。

そのようです

ただし、これは上位 3 つだけでなく、すべての値を合計したものです。

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

sqlite - SQL - 複数のフィールドでグループ化された上位 n を選択し、カウント順に並べ替えます

複数の属性でグループ化したときに上位 n レコードを見つけようとしています。この問題に関連していると思いますが、説明されている解決策を自分の状況に適応させるのに苦労しています。

簡単にするために、列を持つテーブルがあります (did は device_id の略です):

行数が最も多い日ごとに上位 n 個の device_id を見つけようとしています。

たとえば (id と dateTime の時刻部分は無視)、

上位2つを見つけると...

私の現在の素朴なアプローチでは、すべての日付で上位 2 つしか得られません。

後で行を抽出できるように、連結演算子を使用しています。

私は SQLite を使用していますが、一般的な SQL の説明をいただければ幸いです。