Я использую DB2 и есть две таблицы:SQL режим высчитывает DB2
пользователей:
- ID - ключевые
- Образование (целое значение представляет уровень)
- Возраст
Платежи:
- Магазин
- Сумма
- ID - внешний ключ
Я хочу, чтобы вычислить статистический режим обучения для каждого магазина, сейчас я пытаюсь что-то вроде этого: 1) Вычислить режим для магазина X :
select u.education
from users u, payments p
where u.id = p.id AND
p.shop = 'X'
group by u.education order by count(*) desc
fetch first 1 rows only;
Этот запрос работает отлично
2) режим обучения Рассчитайте для каждого магазина:
select p.Shop as Shop,
avg(u.age) as AvgAge,
(select u1.education
from users u1
where u1.id = p.id
group by u1.education
order by count(*) desc
fetch first 1 rows only) as ModeEdu
from users u, payments p
where u.id = p.id
group by p.Shop;
Этого запрос дает ошибку:
SQLCODE = -119, ошибка: столбец или выражение, намеченный в HAVING недействителен,
Почему с возрастом входит в запрос? можете ли вы показать некоторые выборочные данные и ожидаемый результат? –
@vkp Я включил возраст, потому что я также пытаюсь получить другую информацию о пользователях, но имею проблему с выбором способа обучения. – MRMKR
@vkp какие образцы вы хотите увидеть? – MRMKR