#sql #join #select #clickhouse
Вопрос:
Я делаю подзапрос, пытаясь добавить в результат общее количество строк(кол-во) в представлениях таблиц, где ObjectId соответствует одному из операторов внешнего ВЫБОРА.
Это прекрасно, но теперь я хочу получить переменную Qty из внутреннего ВЫБОРА, чтобы иметь возможность добавить ее в конечный результат. Но @Qty или просто ссылка на количество не работает.
Пожалуйста, помогите.
Мой код:
SELECT
v.UserID,
v.ObjectID,
v.ObjectClass,
max(ro.RecommendDate) AS LastRecDate,
v.ViewDate,
count() AS TotalViews
FROM views AS v
LEFT JOIN recommender_objects AS ro ON (v.ObjectID = ro.ObjectID) AND (v.UserID = ro.UserID)
INNER JOIN
(with count() as Qty
SELECT
views.ObjectID AS c,
views.UserID,
count() as Qty
FROM views
WHERE views.UserID = 'aabb'
GROUP BY
c,
views.UserID
HAVING Qty > 1
) AS Counts ON views.ObjectID = c
WHERE (ro.ObjectID > 0) AND (v.ObjectID > 100000) AND (v.ViewDate > ro.RecommendDate) AND (v.ViewDate > (now() - toIntervalWeek(2))) AND (v.UserID = 'aabb')
GROUP BY
v.UserID,
v.ObjectID,
v.ObjectClass,
v.ViewDate
ORDER BY v.ObjectID ASC
LIMIT 20
Что я пытался:
@Qty := count()
@Qty = count
Это дает ошибку о синтаксисе вокруг @
Как бы то ни было, если я добавлю Отсчеты.Кол-во для начальных полей ВЫБОРА, он выдает неизвестный идентификатор ошибки: «Кол-во».