問題タブ [groupwise-maximum]

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 投票する
32 に答える
901560 参照

mysql - 各グループの最後のレコードを取得する - MySQL

messages以下に示すようなデータを含むテーブルがあります。

query を実行するselect * from messages group by nameと、結果は次のようになります。

次の結果を返すクエリはどれですか?

つまり、各グループの最後のレコードが返されます。

現在、これは私が使用するクエリです。

しかし、これは非常に非効率に見えます。同じ結果を達成する他の方法はありますか?

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

sql - テーブルから最新のレコードのみを選択し、これを高速にします。

良い一日、私は私がたくさん苦労している質問があります、誰かがこれに対する賢い解決策をすでに見つけたことを願っています(私はMySQLを使用しています)。

私はこのようなテーブルを持っています:

私の目標は、ユーザーの最後に挿入されたレコードを選択し、これを高速化することです。ログテーブルは巨大(約90万レコード)なので、最初のアプローチは次のとおりです。

しかし、すべての行のサブクエリを計算しているようです(EXPLAINはDEPENDENT QUERYを示しています)。このクエリを2つに分割すると、次のようになります。

実行してもかまいません。これは1つのクエリで達成できますか?

0 投票する
6 に答える
8583 参照

r - rのグループ内の変数の値が最大の行を選択します

data.frame全体のインデックスではなく、リストインデックスを返します

b.2の各サブグループの最大値を返そうとしていa.2ます。どうすればこれを効率的に行うことができますか?

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

mysql - mysql 結合サブクエリ

次のテーブルがあります。

次のクエリを最適化または書き直す方法について、誰かがアドバイスをくれるかどうか疑問に思っていました。

基本的に、各 channel_name の値、ステータス、および接続されたフィールドを 2 つの異なる時間に取得しています。t0 は常に <= t1 であるため、フィールドは t1 には存在する可能性がありますが、t0 には存在しない可能性があり、それを表示したいと考えています。そのため、RIGHT JOIN を使用しています。t1 に存在しない場合、t0 にも存在しないため、行は返されません。

問題は、サブクエリに参加しているため、インデックスを使用できないことです。最初にデータテーブルのchannel_idで自己結合を行うように書き直そうとしましたが、それは数百万行です。

t0.value = t1.value & t0.status = t1.status & t0.connected = t1.connected.

どうぞよろしくお願いいたします。

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

mysql - mysql update groupwise max

私は次の表を持っています

channel_idごとに、取得時間が最大の行を検索し、値をNULLに、ステータスをNULLに変更し、0に接続したいと思います。これは可能ですか?マニュアルには、サブクエリでテーブルを更新して同じテーブルから選択することはできないと記載されています...

お時間をいただきありがとうございます。

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

mysql - mysqlクエリで複数の行の列のセットの最大を見つける.

次のフィールドとデータを含むテーブルがあります。

これから、特定のコードの最大値 (年、月) を見つけなければなりません。結果は

これを解決するのを手伝ってください。

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

sql - SQL:別の列が一致しない場合に最大値を除外する方法

Oracle10gを使用しています。SQLでの私の調査-最大値とhttp://jan.kneschke.de/projects/mysql/groupwise-max/
の列を持つ行を選択する方法

max(row)をどうするかを考えてから、他のmax(rows)を見つけます。しかし、私はまだそこにいません。

基準: IDのmax(enroll_date)のコードは「WHEAT」である必要があります。
コードが「WHEAT」である最大登録日は必要ありません。最大登録日のコードが「WHEAT」の場合にのみ行が必要です。

質問:基準を満たすクエリを作成するにはどうすればよいですか?

ID = 30、Code = WHEATを返すため、これは機能しません。日付は2001年12月25日で、そのIDのmax(date)ではありません。

ID = 30、Code = WHEAT、date = 12/25/2001を返すため、これも機能しません。

これが私のテーブルです

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

mysql - MySQLイベントベースのサポートチケットシステム

午後。

最近、イベントベースのサポートチケットシステムの開発を任されましたが、多くの問題が発生しており、問題はデータベースの構造にあると思います。

現時点では、次のようになっています。

したがって、チケットがステージを変更するたびに、チケットが移動したステージとタイミングを指定する新しい行がticket_eventsテーブルに追加され、チケットテーブルのstage_idフィールドが新しいステージで更新されます。

問題は、チケットの現在のステージがtickets.stage_idとticket_eventsテーブルの最新のレコードの両方で定義されているため、これがデータベースの正規化ルールに違反することです。ある時点での未処理のチケットの数を示すレポートを作成しようとしたところ、なぜこのようになっているのかがわかりました。イベントテーブルから現在のステージをすばやく取得するために、どのような種類のSQLも取得するのは非常に難しいようです。

この非常に役立つページ(http://kristiannielsen.livejournal.com/6745.html)でオプション2を使用して適度に高速なクエリを作成できましたが、問題が発生して行き詰まりました。

現在のデータでは、event_idは常に日付に対して昇順で実行されるとは限りません。さらに、特定の自動処理スクリプトにより、1つのチケットにまったく同じ日付の2つのイベントが含まれる可能性があります。つまり、イベントテーブルを使用しようとするクエリは、「日付順、event_id」である必要があります。これは、サブクエリやグループ化ではほとんど不可能です。

これらの問題を克服するために私がどのように取り組むことができるかについて誰かがアドバイスを与えることができますか?イベントの順序を定義するより良い方法はありますか?

どうもありがとう。サイモン

0 投票する
27 に答える
1668081 参照

mysql - SQL は、列に最大値を持つ行のみを選択します

ドキュメント用にこの表があります(簡略版はこちら):

ID 回転 コンテンツ
1 1 ...
2 1 ...
1 2 ...
1 3 ...

ID ごとに 1 つの行を選択し、最大の収益のみを選択するにはどうすればよいですか?
上記のデータでは、結果には[1, 3, ...]との 2 つの行が含まれているはず[2, 1, ..]です。私はMySQLを使用しています。

現在、ループ内でチェックを使用してwhile、結果セットから古いリビジョンを検出して上書きしています。しかし、これが結果を達成するための唯一の方法ですか? SQLソリューションはありませんか?

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

mysql - 複雑な SQL 結合クエリ - 最新の行を取得する

私の MySQL データベースには、id、name、data、および location の 4 つのフィールドを持つテーブル (cfg) があります。この 1 つのテーブルは、複数のサブドメイン (location) にサービスを提供するためのものです。特定のサブドメイン (場所) の名前ごとに最新の行のリストを取得する必要があります。

サンプルデータ

次のクエリは正常に機能しますが、複雑すぎて処理が遅いようです。誰か提案がありますか?

それは戻るだろう