1

私の問題の例えは次のようなものです。

table: place
id   title            branch
===============================
1    pizza store      california
2    pizza store      manhattan
3    coffee shop      california
4    pizza store      texas
5    cookie store     new york

table: rating
id    place_id     rating
================================
1     1            3.5
2     2            5.0
3     2            4.2
4     2            5.0
5     5            4.0

私はクエリを使用します:

 SELECT F.id AS id, F.title AS title, G.rating 
 FROM place F 
 JOIN rating G ON F.id = G.place_id 
 GROUP BY F.title

表示は次のようになります:

id   title          rating
===========================
1    pizza store    3.5
3    coffee shop    -
5    cookie store   4.0

私が欲しいのは、評価が最大のタイトルを並べ替えることです。この場合、評価5とID2のピザ店を表示したいと思います。GROUPBY内にサブクエリを挿入することはできますか?

前もって感謝します!!

4

2 に答える 2

3

試す

SELECT F.id , F.title, s.Maxrating 
FROM place F 
INNER JOIN (SELECT id,Max(rating) as MaxRating FROM rating  GROUP BY place_id ) s 
ON s.id = F.id 
于 2012-04-11T04:35:55.087 に答える
2
SELECT F.id AS id, F.title AS title, max(G.rating)
FROM place F, rating G
where F.id = G.place_id(+)
group by f.id, f.title
于 2012-04-11T04:42:30.633 に答える