У меня такой запрос:
SELECT
result.ip,
ips.ipStatus,
result.quantity,
result.clickDates,
FROM
ips
INNER JOIN
(
SELECT
visits.ip,
count(visits.ip) AS quantity,
GROUP_CONCAT(clicks.clickDate) AS clickDates,
FROM
visits
INNER JOIN
clicks
ON visits.id = clicks.id
WHERE
clicks.clickDate BETWEEN 1 AND 10
GROUP BY
visits.ip
ORDER BY
null
) AS result
ON ips.ip = result.ip LIMIT 6, 2
В результате получается таблица результатов:
ip | status | quantity | date
1.1.1.1 ok 3 555, 557, 558
2.2.2.2 ok 1 657
Моя дата хранится в формате .ms (BIGINT). Моя цель - ORDER BY
дата DESC
. Я хочу чтобы последние ips были наверху. Поэтому я пытаюсь изменить ORDER BY
на ORDER BY clicks.clickDate DESC
. Но это дает мне ошибку:
Выражение # 1 предложения ORDER BY отсутствует в предложении GROUP BY и
содержит неагрегированный столбец
Итак, у меня есть два вопроса:
Возможно ли ORDER BY
, если я использую GROUP_CONCAT
в столбце clicks.clickDate?
Может быть, есть способ показать только последнее значение после GROUP_CONCAT
на clicks.clickDate?