問題タブ [having-clause]

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

mysql - 「持っている」があるのに、なぜ「どこに」あるのですか

私はこれが多く議論されていることを知っていますが、私の研究のどれも、MySQLの''句whereと' '句の違いを私に納得させることができませんでした。having私が理解していることから、''を使用して'where'句で実行できるすべてのことを達成できますhaving。たとえば。select * from users having username='admin'。では、なぜ' where'句が必要なのですか?whereを使用するとパフォーマンスに違いがありますか?

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

mysql - HAVING句の正しい使い方

私は MySQL を使用しています。私の目標は、UPDATE特定の条件を満たすテーブル内のフィールドのみにすることです。ここに私が持っているものがあります:

上記で、従業員が持っているボーナスの合計を現在の金額に追加したいと思います. に存在する従業員にのみtbl_emp. そのままでは、エラーメッセージが表示されます:

1064 - SQL 構文にエラーがあります。7 行目の 'GROUP BY o.user_id LIMIT 1)' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

句がないHAVING場合、システムはすべての従業員の金額を更新しますが、ボーナスを持っていない従業員は、金額を 0 にリセットします (既に金額がある場合でも)。ボーナスをお持ちの方へ、元気に働いています。

何か案は?正しい使い方はHAVING

アップデート:

更新後、望ましい結果は

しかし、私はこの結果を得ています、

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

php - MySQL: HAVING を指定した GROUP BY は空のセットを返しますが、GROUP BY がなくても機能します

次のフィールドで構成されるテーブル (cargo_route) があります。

ID、トラック ID、 緯度、
経度 、 半径


これは、各行がトラックの緯度経度座標の各停留所である配送ルートです。

各ストップと (任意の入力) ポイント (緯度経度) の間の距離を計算し、その距離が (そのストップの) 指定された半径よりも小さい場合に結果を表示する必要があります。(基本的には都市がルート上にあるか、ルート上のどの停留所からも遠すぎるかを検索します)

HEREは私のクエリです(正常に動作します)

コードは機能します....しかし、同じtruck_idを持ついくつかの行が表示されます(基本的に、検索されたポイントに十分近いすべての停留所)

ポイントを通過するトラックのIDのみを取得するために「GROUP BY truck_id」を試行すると、空のセットが取得されます:(

PHPロジック内でこれを解決できますが、配列を反復処理するよりも、SQLに本当に必要なものを返してもらいたいです。

私は調査を行い、GROUP BY が最初に実行され、HAVING は距離 < 半径を持たないことになることを知りました。ORDER Bも試しましたが効果なし。

HEre は EMPTY SET を返すクエリです

質問: HAVING を実行してからグループ化する方法はありますか? おそらく少し異なる構文ですか?

HAVING と GROUP BY を並べ替えてみましたが、エラーが発生します。また、「距離」は集計列であるため、WHERE を使用できません。

************編集_解決済み*******************

私自身の質問に答えることができません:

みんな、実際にここで答えを見つけました:SELECT From MySQL View With HAVING Clause Returns Empty Result Set

基本的に、 SELECT * FROM (私のクエリ) S WHERE 距離 < 半径 GROUP BY トラック ID

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

inner-join - マルチパート識別子とhaving句を使用した内部結合による選択

重複するマルチパート識別子の特定のフィールドを選択する必要があります。

重複を正しく取得するためのクエリがあります。

しかし、重複を見つけた後、同じテーブルからより多くの情報を取得する必要がありますが、重複があるマルチパート識別子についてのみです。次のようなものです。

誰かがこれの正しい構文を教えてくれますか?

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

sql - 特定の期間に値がある場合はアイテムを除外する

特定の製品(SourceCustomerProductCode = 102)を販売しているアカウントのリストを返そうとしており、2013年にこの製品を販売したアカウントを確認したいのですが、2012年に販売した場合は、除外してほしいです。クエリ(つまり、新しい顧客のみを返したい)。以下のクエリは、2013年にこの製品を販売したアカウントを返していますが、2012年にこの製品を販売したアカウントも含まれています。

[CaseAndGalloneVolume]ステートメントの場合はcaseを使用してSELECT領域にこれを記述できることはわかっていますが、最終的には他の製品をテーブルに追加するため、where句にこのステートメントを記述する必要があります。

助けてくれてありがとう!

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

sql - 列を追加するときにHAVING句が機能しない(チェック制約が必要ですか?)

SQL#1は、2013年から特定のパッケージ(パッケージ102)を最初に購入したアカウントを提供するため、(HAVING句を介して)163アカウントを返します。

2013年の会計月ごとに売上を分類したいのですが、[Unique_Fiscal_Month_Label]を列に追加すると、406個のアカウントが表示され、HAVING句は基本的に機能しなくなりました。以下のSQL#2を参照してください。Fiscal_Monthを追加することで、基本的にそのパッケージタイプを購入したことのあるすべてのアカウントが得られる理由について考えてみてください。私はオンラインでチェック条件が役立つかもしれないと読んだが、それを書くのは運が悪かった。

SQL#1

SQL#2

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

mysql - SQL:ショップのユニークな顧客を見つける際の問題

私はSQLを初めて使用するので、特定のショップのユニークな顧客を見つけるためのクエリを作成したいと思います。例:ショップSH1には10人の顧客が登録されており、10〜3人の顧客が他のいくつかのショップにも登録されています。SH1を購入するユニークな7人の顧客を返すクエリが必要です。

ShopIdとは両方ともCustomerId同じテーブルに格納されているため、サブクエリが必要になると思います。

ありがとう、マユール

サンプルデータ:

ShopId CustomerId

  • Shop1 Cust001
  • Shop1 Cust002
  • Shop1 Cust003
  • Shop2 Cust002
  • Shop3 Cust004
  • Shop4 Cust002

上記の例で、ショップID Shop1のクエリを実行すると、他のショップIDとリンクされているため、Cust002ではなくShop1に固有のCust001、Cust003を取得する必要があります。

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

mysql - 持っている場所

HAVING行のグループとWHERE個々の行に使用します。
ただし、以下は有効です。

HAVINGつまり、集計関数なしで使用します。WHERE Salesperson <> 'Georgio';では、代わりに 使用することもできなかったのでしょうか?

0 投票する
0 に答える
1014 参照

pagination - Zend Framework 2 の HAVING 句でページネーションが機能しない

ここに示す方法と同様のページネーションを実装しました。

検索\モデル\コーステーブル

検索\コントローラー\検索コントローラー

例外がスローされるようになりました。

そして、前のものは次のとおりです。

フレームワークのバグですか?


編集

$test = $select->getSqlString($this->tableGateway->getAdapter()->getPlatform());前の行で生成されたクエリ$adapter = new \Zend\Paginator\Adapter\DbSelect($select, $this->tableGateway->getAdapter());: