問題タブ [having]
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 - SQL - グループの結果を制限する
次の表があります。
各車種の最も古い年の行を取得できるクエリを探しています。この場合、次のようになります。
ORDER BY + LIMIT、HAVING、GROUP BY を試してみましたが、必要のない余分な行が常に追加されます (サブ結果を作成するには、結果セットを反復処理する必要があります)。
どうすればそれができるかについてのアイデアはありますか?
役立つヒントをありがとうございます。
ケラウド
mysql - MySQLGroupByおよびHAVING
私はMySQLクエリの初心者なので、これは明白な答えのある質問だと確信しています。
しかし、私はこれら2つのクエリを見ていました。それらは異なる結果セットを返しますか?並べ替えプロセスの開始方法が異なることは理解していますが、最初のクエリの方が少し効率的で、同じ結果が返されると思いますか?
クエリ1:HAVING、次にAND
クエリ2:WHERE、次にHAVING
mysql - userid = userid であるテーブルを別のテーブルに結合するにはどうすればよいですか?
私は、ユーザーが自分のワークステーションで各バッチに取り組んだ合計時間、完了した推定作業の合計、ユーザーに支払われた金額、ユーザーが今年 1 日で何回失敗したかを調べています。これらすべてを 1 つのクエリに結合できれば、それを Excel で使用して、ピボット テーブルなどで適切に書式設定できます。
編集:これは複数のクエリでのみ実行できることに気付いたので、スコープをこれに絞り込みました:
クロス結合が問題の原因でした。
mysql - MYSQL GROUP BY を使用して値のスタックを選択することは可能ですか?
私はこのようなクエリを得ました:
だからそれは私を返します:
そして今、私は次のようなものを得るためにクエリを調整する必要があります:
GROUP BY HAVING を使用してこの結果を取得することは可能ですか? または、この結果を得るための提案はありますか?
どうもありがとう!
sql - SELECTにない列を持つSQL
3列のテーブルがあります:
1 人のユーザーのエントリは次のようになります。
このユーザーが「よく使用する」と見なされる MAC のみを表示するビューを作成したいと考えています。たとえば、そのユーザーの最も使用されている MAC アドレスと比較して、使用されている MAC アドレスが 10% 未満である MAC を除外したいと考えています。さらに、ユーザーごとに1行が必要です。これは、GROUP BY、HAVING、および GROUP_CONCAT を使用して簡単に実現できます。
実際、結果は次のとおりです。
ただし、ビューにカウント列を表示したくありません。しかし、SELECT ステートメントからそれを取り出すと、次のエラーが発生します。
ビューに厄介なカウント列を強制することなく、この操作を実行できる方法はありますか? おそらく内部クエリを使用して実行できることはわかっていますが、パフォーマンス上の理由からそれを避けたいと思います。
あなたの助けは大歓迎です!
mysql - GROUPBYの前にHAVINGが発生することを確認する方法
ポイントから一定の距離にある銀行のリストを取得しています
ただし、各チェーンの1つの会場を取得したいだけです。
これまでのクエリ
group by nameを使用すると、距離が範囲内に収まらないことが評価されるため、機能しません。つまり、700 mを超える距離に低いIDのICBCがある場合、2つのICBCが700 m以内にある場合でも、ICBCは結果に表示されません。だから私はこれgroup by
が前に起こるので起こるhaving
のではないかと思いますそれとも別の解決策がありますか?
実際の列ではないため、距離チェックをどこに移動できませんでした#1054 - Unknown column 'distance' in 'where clause'
mysql - 部分的に重複するデータから優先する行を選択する
次のクエリがあります。
次の表から選択しています。
以下のデータを指定すると、より単純なクエリは次のようになります。
現在のデータdebugcount
は常に 1 である必要がありますが、上記のクエリのグループに複数のメーターがある場合は、グループ内のメーターのdebugcount
数にする必要があります。
異なるソースからの値から選択できますmanual
。
-read
データソースからのソース、どこかの建物のメーター;
-calculated
欠損データを補うために補間されたデータ。
同じデータポイントを持つ単一のデータポイントは、meter_id+mydate複数のソースを持つことができます。
クエリはmanual
ソースよりも優先し、他のデータが利用できない場合read
にのみデータを選択する必要があります。calculated
のデータのサンプルを次に示しますmeterstand
。
最適なデータ ポイントを選択するために使用する適切なクエリ構文は何ですか?
sql - count>1のレコードを検索するためのSQLクエリ
という名前のテーブルがありますPAYMENT
。このテーブルには、ユーザーID、アカウント番号、郵便番号、日付が含まれています。同じアカウント番号で1日に複数の支払いを行うすべてのユーザーのすべてのレコードを検索したいと思います。
更新:さらに、郵便番号が異なるレコードのみをカウントするフィルターが必要です。
テーブルは次のようになります。
結果は次のようになります。
これをSQLクエリでどのように表現しますか?自分で参加しようと思っていたのですが、どういうわけかカウントが間違っています。
mysql - GROUPBYおよびHAVING結果セットを展開します
GROUP BY
とHAVING
クエリのすべてのレコードを展開/取得する方法はありますか?
例えば、
SELECT * FROM table_name WHERE Column1 = 'this' AND Column2 = 'that' AND Column3 = 'more'
結果セットを調べて各レコードに対して実行するよりも、すべてのレコードを取得する簡単な方法はありますか?
mysqlまたはその他の制限のために実行できない場合、query
上記のすべてのデータを取得する他の方法はありますか?
すべてのレコードを展開/取得するということは、結果セットが
4つのレコードすべてを取得できるようにしたいと思います。
mysql - Mysql は、グループごとの行を制限します 奇妙な結果
それぞれの最新の 4 つの日付を取得したいと考えていましたsymbolid
。ここでコードを次のように調整しました。
次の結果が得られます。
明らかな疑問は、なぜ ごとに 3 行しか得られないのsymbolid
か、そしてなぜ 1、3、5 の番号が付けられているのかということです。いくつかの詳細:
- インデックスを強制する場合としない場合の両方を試してみましたが (ここで見られるように)、両方の方法で同じ結果が得られました。
- 日付は正しいです。つまり、リストには ごと
symbolid
に上位 3 つの日付が正しく表示されますが、row_number の値はずれています - 「having」ステートメントを使用しない場合、行番号は正しいです。つまり、最新の日付は 1、次に新しい日付は 2 などです。
明らかに、row_number
計算フィールドは「having」句の影響を受けていますが、修正方法がわかりません。
「having」を「having row_number < 7」(6 は 5 と同じ) に変更できることはわかっていますが、それは非常に見苦しく、「動作」させるにはどうすればよいか知りたいと思います。