2016-05-28 11 views
-1

タイトル、ISBN、コストとカテゴリーを表示していますが、そのカテゴリには書籍の量が最も少なく、出力の前に「$」を追加しようとしています小数点第2位を四捨五入しています。カテゴリの

例=この場合

Technology = 4 
Family = 3 
Sports = 2 
Business = 4 

私は出力がカテゴリスポーツ

Select TITLE, ISBN, 
Round('$' + CAST(COST AS VARCHAR(15)) COST, 2), 
CATEGORY 
From BOOKS 
GROUP By category 
HAVING Category = ((Select Min(Category) 
From (Select Count(Category) AS Category) 
From BOOKS 
Group By Category) 
; 
+0

このような書式設定は、SQLではなくアプリケーション(GUI)で行うのが適切です。 –

答えて

1

Oracleは文字列の連結のための||を使用して表示したいです。最小カウントを持つカテゴリを取得するには、インラインビューを使用して1つはカウントを取得し、もう1つは最小カウントを取得し、joinは元のテーブルを使用します。

select b.TITLE, b.ISBN, 
'$' || TO_CHAR(ROUND(b.COST,2)) cost, b.CATEGORY 
From BOOKS b 
join (select category,count(*) cnt from books group by category) ct 
on b.category = ct.category 
join (select min(cnt) mincnt 
     from (select count(*) cnt from books group by category)) minct 
on ct.cnt = minct.mincnt 
+0

書籍の量が同じ複数のカテゴリがある場合はどうなりますか? – aofe1337

+0

テーブルの行数が最小のカテゴリのすべての書籍を選択しますか? –

+0

ビジネスが1でスポーツに1があった場合、両方を表示したいと考えています。申し訳ありません - 私は自分自身を元のポストでより明確にするべきでした。 – aofe1337