0
concert_idに基づいて出席の平均を数えるには?Oracle - コンサート自体に基づいて出席の平均を数えるには?
は、これまでのところ、私がやっていることのようになるAVG_ATTENDANCE_EACH_CONCERTにする方法この
select concert_id, event_id, count(customer_id) attendance,
case when concert_id = 1
then (select count(customer_id)/count(concert_id)
from booking where concert_id=1)
end as avg_attendance_each_concert
from booking
group by event_id, concert_id
order by event_id;
結果
CONCERT_ID EVENT_ID ATTENDANCE AVG_ATTENDANCE_EACH_CONCERT
---------- ---------- ---------- ---------------------------
1 1 1 3
1 2 2 3
2 3 2
2 4 1
3 5 2
3 6 2
4 8 2
4 9 2
5 11 4
5 12 1
5 13 1
のようなものですか?
CONCERT_ID EVENT_ID ATTENDANCE AVG_ATTENDANCE_EACH_CONCERT
---------- ---------- ---------- ---------------------------
1 1 1 1.5 --> 3 attendance/2 same concert_id
1 2 2 1.5
2 3 2 1.5 --> 3 attendance/2 same concert_id
2 4 1 1.5
3 5 2 2 --> 4 attendance/2 same concert_id
3 6 2 2
4 8 2 2 --> 4 attendance/2 same concert_id
4 9 2 2
5 11 4 2 --> 6 attendance/3 same concert_id
5 12 1 2
5 13 1 2
私は、その分析の形式でAVGについての平均出席以下
ワウは魔法のように働いています。 分析的な相談について聞いたことがありません。 over(partition by column_name)の使い方 私が混乱しているのは、partition by clauseです。 – sekti92
@ sekti92 - [Analytic Functions](https://docs.oracle.com/database/121/SQLRF/functions004.htm)のドキュメントを参照してください。 –