[解決済み] having節に未知のカラムがある
2022-02-28 03:17:41
質問
映画の最長レンタル期間をsakilaデータベースで見つけたいのですが。 私はこれを試した。
SELECT DISTINCT
customer.first_name
FROM
rental,
customer
WHERE
rental.customer_id = customer.customer_id
GROUP BY
rental.rental_id
HAVING
(
rental.return_date - rental.rental_date
) =(
SELECT
MAX(countRental)
FROM
(
SELECT
(
rental.return_date - rental.rental_date
) AS countRental
FROM
rental,
customer
GROUP BY
rental.rental_id
) AS t1
)
が、エラーになります。
# 1054 - Unknown column 'rental.return_date' in 'having clause'
なぜかわかる方いらっしゃいますか?私は集計されたデータであるはずのカラムを使用しています。何が足りないのでしょうか?
解決方法を教えてください。
ドキュメントに書かれているように
<ブロッククオート標準SQLでは、HAVINGはGROUP BY句の列、または集約関数で使用される列のみを参照しなければならないとされています。しかし、MySQL はこの動作の拡張をサポートし、SELECT リスト内のカラムと外部サブクエリ内のカラムを HAVING が参照することを許可しています。
select節でreturn_dateとrental_dateを指定する必要があります。
2つのオプションがあります。
SELECT DISTINCT
customer.first_name,
rental.return_date,
rental.rental_date
FROM
rental,
customer
WHERE
rental.customer_id = customer.customer_id
GROUP BY
rental.rental_id
HAVING
(
rental.return_date - rental.rental_date
) =(
...
または
SELECT DISTINCT
customer.first_name,
(rental.return_date - rental.rental_date) as rental_duration
FROM
rental,
customer
WHERE
rental.customer_id = customer.customer_id
GROUP BY
rental.rental_id
HAVING
rental_duration =(
...
どちらも問題なく動作するはずです。
関連
-
[解決済み] "sqlstate[23000]: 整合性制約違反 "を有効な制約で
-
[解決済み] mysql 拡張は非推奨で、将来的に削除されます: 代わりに mysqli か PDO を使ってください [重複] 。
-
[解決済み] エラーコードです。1215. 外部キー制約を追加できません (外部キー)
-
[解決済み] エラー1022 - 書き込みできません; テーブルに重複したキーがあります。
-
[解決済み] テーブルがクラッシュしたと判定されたため、修復する必要があります。
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] SELECT' 文の 'IF' - カラムの値に基づいて出力値を選択する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】#1273 - 不明な照合順序:'utf8mb4_unicode_520_ci'
-
[解決済み】mysqlが内部または外部のコマンド、操作可能なプログラムまたはバッチとして認識されない。
-
[解決済み】カラムのデータが切り捨てられた?
-
[解決済み] エラー 1115 (42000)。不明な文字セットです。'utf8mb4'
-
[解決済み] mysqladmin: 'localhost'のサーバーへの接続に失敗しました。
-
[解決済み] MySQL Workbenchが「このサーバーバージョンでは、この位置は無効です」というエラーを報告する。
-
[解決済み] MySQLから最後のN行を選択する
-
[解決済み] mysqlのテーブルからユニークキーを削除する方法
-
[解決済み] MongoDBのようにMySQLにもTTLがあるのでしょうか?
-
[解決済み] dpkg: error processing package mysql-server (dependency problems)?