問題タブ [sql-limit]
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.
java - 個別の主キーに基づいて制限しながら、1 対多のクエリ
次のようなテーブルがあります。
次に、画像が持つことができるタグのタグ テーブルがあります。
必要な結果を得るために、次のようなクエリを実行します。
image_id
問題は、出力が次のようになるため、一意の の数に基づいて制限したいことです。
SQL はそれぞれとコンボtag_id
に対して行を返しますが、s を出力用の配列にグループ化する方法に注意してください。tag_id
image_id
だから、私が言うときlimit 100
、私はそれを100のユニークな に適用したいimage_id
.
mysql - MySqlでINSERT IGNORE .... SELECT .... ORDER BY ... LIMIT ...の正確な動作は何ですか?
MySql 5.6 には、次のようなクエリがあります。
TABLE_1
一部のタプルを格納してから空にするために使用される一時テーブルです。PRIMARY KEY はありません。
プロセスはテーブルを複数回埋めるため、SELECT
. これを考慮して、必要なすべてのデータを挿入できるように、制限を増やすことを考えました。
TABLE_1
クエリの内容と結果の例を次に示しSELECT
ます。
TABLE_1
:
SELECT
結果 ( を無視LIMIT
):
したがって、2 つの重複するタプルが存在することを考慮する(foo,4)
と(bar,5)
、8 つの要素が挿入されると予想していましたが、実際には、2 つの重複を無視して、クエリで 10 の要素が挿入されていることがわかりました。
ポイントは、ドキュメントでこの動作の理由を見つけることができないということです。私が持っているがある場合にのみ機能するここを見つけました。しかし、 、、およびを一緒に持つこの動作の正確な説明を見つけることができませんでした。LIMIT
INSERT...SELECT
ORDER BY
INSERT IGNORE
INSERT...SELECT
ORDER BY
LIMIT
誰かがこの予期しない動作を説明するのを手伝ってくれますか?
c# - sqlite クエリで LIMIT 条件にパラメーターを使用できますか
C# アプリケーション用に取り組んでいる SQLite クエリに関する簡単な質問:
パラメータを使用してクエリで「LIMIT」値を設定できますか? たとえば、私はこれをしたいと思います:
これは事ですか?それとも同等のものはありますか?可能であれば、プログラムで LIMIT 値を設定できるようにしたいと考えています。
この質問をしばらくグーグルで調べてみましたが、何も思いつかなかったので、皆さんが助けてくれるかもしれません. どうもありがとう!
sql - LIMIT を使用した PostgreSQL ウィンドウ関数
以下のクエリは、結果first
を 4 つの等間隔の日付ビンにグループ化しthe_value
、各ビンの平均を集計します。
the_value
各ビンで最低の 20 の平均のみを計算できるようにしたいと思います。ここ Stackoverflow の他の投稿から、これが可能であり、おそらくORDER BY the_value
それrank()
が最善の方法であることがわかりました。しかし、私の苦労は、これを実装するために現在のクエリをどこで変更する必要があるかわからないということです。
任意の洞察をいただければ幸いです。
Postgres バージョン 9.3
postgresql - Postgres でページネーションを使用してすべての行を効率的に取得する
私のアプリケーションは Postgres テーブルからすべての行を取得する必要がありますが、不明な制約があるため、1 つのクエリから返される結果の数を制限する必要があります (たとえばlimit l
( l=100000
))。
したがって、オフセットと制限を使用したページネーションが当面の解決策として頭に浮かびます。ただし、Postgre のドキュメントに は次のように記載されています。
句によってスキップされた行は
OFFSET
、サーバー内で計算する必要があります。したがって、大きなサイズOFFSET
は非効率的である可能性があります。
したがって、pages_count * l
ページング[1, l], [l+1, 2*l], ..., [(pages_count-1)*l+1, pages_count*l]
で行を要求すると、実際(pages_count*l+1)*pages_count*l/2
にはどのO(sqr(pages_count*l))
行が読み取られます。
または、Postgres は最近のクエリからの行をキャッシュしますか、またはすべてのpage_count*l
行を取得する効率的な方法は何ですか?
mysql - SQL 制限により悪い結果が生じる
SQL LIMIT ステートメントの使用に問題があります。データベースに 21 のレコードが保存されており、結果を部分的に取得したいと考えています。私はこのクエリを書きました:
この値を使用したときに得られる行数は次のとおりです。
コードはphp関数で使用され、データベース操作にはPDOStatementクラスを使用しますが、このエラーはMySQLiクラスの使用でも明らかになります.
問題がどこにあるか誰か知っていますか?
python - UPDATE .. SqlAlchemy と PostgreSQL を使用した LIMIT 1
SqlAlchemy を使用すると、最初に一致した行のみを更新するクエリを作成できますか?
私の場合、最新のログ エントリを更新する必要があります。
結果は次のようになります。
InvalidRequestError: limit() が呼び出されたときに Query.update() を呼び出せません
UPDATE ... LIMIT 1
これはMySQL のみの機能であるため、理にかなっています (解決策はこちら) 。
しかし、PostgreSQL で同じことを行うにはどうすればよいでしょうか? おそらく、サブクエリアプローチを使用していますか?