[解決済み] mysqlのWHERE句でエイリアスを使用することはできますか?
2022-08-08 06:51:49
質問
WHERE 句でエイリアスを使用する必要がありますが、不明なカラムであると言われ続けています。この問題を回避する方法はありますか?私はxより高い評価を持つレコードを選択する必要があります。評価は次のエイリアスとして計算されます。
sum(reviews.rev_rating)/count(reviews.rev_id) as avg_rating
どのように解決するのですか?
HAVING句を使用することができます。 ができます。 はエイリアスを見ることができます、例えば
HAVING avg_rating>5
という表現になりますが、where節では、例えば、以下のように式を繰り返す必要があります。
WHERE (sum(reviews.rev_rating)/count(reviews.rev_id))>5
しかし!すべての式が許されるわけではありません。SUMのような集約関数を使ってもうまくいかないので、その場合はHAVING句を使う必要があります。
から MySQL マニュアル :
<ブロッククオートWHERE句でカラムのエイリアスを参照することはできません。 カラムのエイリアスを参照することはできません。 というのも、カラムの値がまだ というのも、WHERE句が実行されたときにカラムの値がまだ決定されていないかもしれないからです。 が実行されたときにカラムの値が決定されていない可能性があるためです。参照 B.1.5.4節を参照してください。 "カラム・エイリアスの問題" .
関連
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] MySql でクエリ実行時に only_full_group_by に関連するエラーが発生する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mysqlにおけるvarcharの日付比較とソートの実装
-
MySQLのselect、distinct、limitの使い方
-
MySQLインストールチュートリアル(Windows用)詳細
-
MySQLインストールチュートリアル(Linux版
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
[解決済み】DynamoDB : 提供されたキー要素がスキーマと一致しません。
-
[解決済み】文字列からuniqueidentifierに変換する際に変換に失敗する - 2つのGUIDの場合
-
MySQLにおけるvarchar型とchar型の違い
-
Djangoマイグレーションエラー 外部キー制約を追加できない
-
Mysqlデータベースへのリンク時にpymysqlがConnection refusedエラーを報告する