ここから始めてください。ほとんどの場合、あなたの質問は閉じられます....あなたの質問からあなたを助けるために私たちが得ることができる情報があまりないので、サンプルは通常のシナリオに基づいています...
SO に質問を投稿する方法に関するヒントを次に示します。
* SQLFIDDLE デモ
試すサンプル:
select c.comic_id, c.comic_title,
COUNT(r.comic_id), avg(r.ratings)
from comics c
left join rating r
on r.comic_id = c.comic_id
group by c.comic_id
;
| COMIC_ID | COMIC_TITLE | COUNT(R.COMIC_ID) | AVG(R.RATINGS) |
---------------------------------------------------------------
| 100 | a | 3 | 5 |
| 200 | b | 4 | 6.5 |
| 300 | c | 3 | 5.6667 |
| 400 | d | 2 | 8 |
最小平均:
select x.comic_id, x.comic_title,
min(average) from (
select c.comic_id, c.comic_title,
COUNT(r.comic_id), avg(r.ratings) average
from comics c
left join rating r
on r.comic_id = c.comic_id
group by c.comic_id) x
;
| COMIC_ID | COMIC_TITLE | MIN(AVERAGE) |
-----------------------------------------
| 100 | a | 5 |
OPのコメントに従って編集:
OPは、最低の評価、2番目に低い評価などをランク付けしたい..最高の評価、2番目に高い..など
このクエリは、variable
ランク付けに a を使用します。
* SQLFIDDLE デモ
クエリ:
select x.comic_id, x.comic_title,
x.average from (
select (@rank:=@rank+1) as rank, c.comic_id, c.comic_title,
COUNT(r.comic_id), avg(r.ratings) average
from (select @rank:=0) rk, comics c
left join
rating r
on r.comic_id = c.comic_id
group by c.comic_id
order by average asc) x
where x.rank = 1
;
| COMIC_ID | COMIC_TITLE | AVERAGE |
------------------------------------
| 100 | a | 5 |
JOIN に慣れるには、次の記事を参照してください: VISUAL REPRESENTATION OF SQL JOINS