У меня есть таблицы, как это:Group Функция здесь не допускается SQL
посещаемости (offering_id
, visitor_id, regstr_date, amount_paid) Предложение (offering_id
, teacher_id) учитель (teacher_id
, teacher_firstname, teacher_lastname, start_date)
Возможно, что один посетитель может посещать два или более человек. Я хочу получить guest_id, regstr_date, total_paid, average amount_paid с посещаемости, где предлагаемый идентификатор - 30,40 или 50, а дата начала обучения меньше, чем у любого последнего пользователя regstr_date, а средняя сумма - на каждого посетителя меньше 600. Мой код равен следует:
select
distinct(a.visitor_id) as v_id ,
max(a.regstr_date) as reg_date,
sum(a.amount_paid) as total_pay,
count(a.regstr_date) as attendance_count,
avg(a.amount_paid) as average_paid
from
attendance a, teacher t, offer o
where
a.offering_id = o.offering_id
and o.teacher_id = t.teacher_id
and a.offering_id in ('30', '40', '50')
and max(a.regstr_date) > t.start_date
group by
a.visitor_id
having
avg (a.amount_paid) <= 600;
Но здесь показана функция группы здесь не допускается. Если возможно, вы могли бы помочь мне с этим, пожалуйста?
Вам не нужно использовать отчетливое – halit
без отчетливые, он не работает, а – Programmer
[Плохие привычки пинать: использование старого стиля JOIN и] (HTTP: //sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - этот старый стиль * разделенный запятыми список таблиц * стиль был заменен на * правильный * ANSI 'JOIN' синтаксис в ANSI - ** 92 ** SQL Standard (** более 20 лет ** назад), и его использование не рекомендуется –