1つの製品タイプと複数のモデルのみを生産するメーカーを入手してください。MYSQLでHAVINGとGROUP BYの問題点は何ですか?
間違った回答:
`SELECT` `DISTINCT` maker
from Product `GROUP BY` maker
`HAVING` (`COUNT`(`DISTINCT` TYPE) = 1 `AND` `COUNT`(`DISTINCT` model) > 1)
正しい答え:
`SELECT` `DISTINCT` maker, type
`from` Product
`WHERE` maker in (SELECT DISTINCT maker from Product
`GROUP BY` maker `HAVING` `COUNT`(`DISTINCT` TYPE) = 1 `AND` `COUNT`(model) > 1)
ショートデータベース記述 "コンピュータ会社": 製品:
データベーススキームは4つのテーブルで構成されてい(メーカー、型式、タイプ) PC(コード、モデル、スピード、ラム、HD、CD、価格) ノートパソコン(コード、モデル、スピード、ラム、HD、画面、価格) テーブルには、メーカー、モデル番号、製品の種類( 'PC'、 'Laptop'、または 'Printer')のデータが含まれています。製品テーブルのモデル番号は、すべてのメーカーおよび製品タイプで一意であると想定されています。 PCテーブル内の各パーソナルコンピュータは一意のコードで明確に識別され、そのモデル(製品テーブルを参照する外部キー)、プロセッサ速度(MHz) - 速度フィールド、RAM容量(Mb) - RAM 、ハードディスクドライブ容量(Gb) - hd、CD-ROM速度(例えば、 '4x') - cd、およびその価格。ラップトップの表は、CD-ROMの速度の代わりに、画面のサイズ(インチ) - 画面が含まれている点を除いて、PCの表と似ています。 Printerテーブルの各プリンタモデルについて、カラーフィールド、印刷テクノロジ( 'Laser'、 'Jet'、または 'Matrix') - タイプ、および価格の出力タイプ( 'y'色と 'n' for monochrome)指定されています。
あなたの宿題で幸運を祈る!あなたがそれに成功した場合、戻って教えてください! –
"正しい"答えも間違っていると面白いです... "SELECT DISTINCTメーカー、タイプ...... GROUP BYメーカー...."タイプはGROUP BYに名前がありません - > https:// www .psce.com/blog/2012/05/15/mysql-mistakes-do-you-use-group-by-正しく/ –