iveこの問題を1時間程度解決するために試してきました。誰かが正しい方向に私を向けることができますか? Oracle SQL DeveloperのOEスキーマのデータを使用して作業しています。Oracle SQL Developerのパーセント割引の計算
私は、list_priceから最大の%割引を控除した商品の商品カテゴリ名を表示する必要があります。
これは私のコードです:
SELECT ct.category_name, ROUND((pi.list_price pi.min_price)*100/pi.list_Price) AS Percent_Discount
FROM oe.product_information pi JOIN oe.categories_tab ct ON pi.category_id = ct.category_id
GROUP BY ct.category_name, ROUND((pi.list_price-pi.min_price)*100/pi.list_Price)
ORDER BY ROUND((pi.list_price-pi.min_price)*100/pi.list_Price) desc;
Here is an image of my results of the query
結果は、実際にすべての方法ダウンひとつひとつの製品が含まれて150ishかそこらに行きます。
私の質問は、私のパーセント値が整数に丸められるのではなく、小数点以下2桁になるようにするにはどうすればよいですか?私はラウンドステートメントを使用したことを理解しますが、それがなければ数字は約15桁です。 また、私のコードが問題に正しく答えると思いますか?最大の割引を使ってトップ10または20のカテゴリ名のみを表示する必要があるような気がします。とにかく、それらのすべてをリストするのではなく、私がそれを行うことができるのですか?
ありがとう、もう一度!明確にするために、maxステートメントは質問の最大の割引率部分に答えるために使用されますか?そして、どのようにORDER BYの部分に "2"しか使わなかったのかをよく理解していないのですが、私にそのことを説明してもらえますか? –
@KurtLee 。 。 'max()'は "最大%割引"に答えます。私が 'Percent_Discount'をタイプしたくないので、実際には" 2 "は省略形です。 –