1

私はsql-ex.ru サイトから sql 演習を行っていましたが、正しくできないものに出くわしました。

ここにあります:

最も高い価格の製品 (PC、ラップトップ、またはプリンター) のモデル番号を見つけます。

結果セット: モデル。

データベースのスキーマについては、こちらで説明しています。ここにその図を載せます:

データベース スキーマ図

私はこの解決策を思いつきました:

with model_price(model,price) as (
select model,price 
from PC

union

select model,price 
from Laptop

union

select model,price 
from Printer
)

select model
from model_price
where price >= all(select price from model_price)

システムは次の結果を出力します。

Your query produced correct result set on main database, but it failed test on second, checking database.
* Wrong number of records (less by 2)

システムは に対する答えを提供しますmain database。しかし、チェックデータベースが何であるかわからず、サブクエリを個別に実行してどこが間違っているかを調べても、何が問題なのかを判断できません。

だから、私が間違っていることに気づいてくれることを願って、ここで質問しています。このタスクはレベル 2 (非常に単純) であるため、私が見逃しているのは些細なことであるはずです。

SQL エンジンについて:Now we use Microsoft SQL Server 2012 on the rating stages, and MySQL 5.5.11, PostgreSQL 9.0, and Oracle Database 11g on the learn stage in addition. この演習を評価するためにどのエンジンを正確に使用しているかはわかりません。

4

6 に答える 6

0

私は問題をキャッチしたと思います:unionモデルと価格で使用します:同じ価格(最大)とモデルを持つ2つの異なる製品(コード)がある場合、1行のみを与える(union代わりunion allに重複を排除します)。結果セットは正しいですが、検証では、2 行ではなく 1 行しか与えなかったと言われています

于 2013-06-10T15:14:43.180 に答える