[解決済み] SELECTクエリで計算フィールドを再利用できますか?
2023-05-05 06:37:30
質問
mysql ステートメント内で計算フィールドを再利用する方法はありますか。私は、エラー "不明な列 total_sale" のために取得します。
SELECT
s.f1 + s.f2 as total_sale,
s.f1 / total_sale as f1_percent
FROM sales s
それとも計算を繰り返さなければならないのでしょうか?必要な計算をすべて追加すると、非常に長いSQL文になります。
SELECT
s.f1 + s.f2 as total_sale,
s.f1 / (s.f1 + s.f2) as f1_percent
FROM sales s
もちろん、PHPのプログラムですべての計算を行うことができます。
どのように解決するのですか?
はい、変数を再利用することができます。これはその方法です。
SELECT
@total_sale := s.f1 + s.f2 as total_sale,
s.f1 / @total_sale as f1_percent
FROM sales s
詳しくはこちらをご覧ください。 http://dev.mysql.com/doc/refman/5.0/en/user-variables.html
[注意: この動作は未定義です。 MySQL ドキュメントによると:] 。
一般的なルールとして、同じステートメント内でユーザ変数に値を割り当て、その値を読み取ることは決してしないでください。期待する結果が得られるかもしれませんが、これは保証されません。
関連
-
MySQLにおけるorder byの使用方法の詳細
-
CMakeエラー。ソースディレクトリ "/xxx/mysql-5.6.21" に CMakeLists.txt がないようです。
-
[解決済み] Ubuntu linux上で動作するリモートMySQLサーバーを再起動する方法は?
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み] 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の条件とインデックスが失敗するための条件
-
mysqlにおけるvarcharの日付比較とソートの実装
-
MySQLとOracleの一括挿入SQLの汎用的な記述例
-
MySQLのselect、distinct、limitの使い方
-
MySQLで正規表現を使う 詳細
-
MySQLデータベースで数百万件のデータを10秒間で挿入
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
Unknown character set.を解決する。MySQLデータベースインポート時の'utf8mb4'エラーの解消
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] utf8_general_ciとutf8_unicode_ciの違いは何ですか?