Помогите вывести правильно, если убрать COUNT(ip) AS total, то всё работает отлично, но без счётчика очень печально!
SELECT id, ip, COUNT(ip) AS total, pc, country, date
FROM user t
WHERE id = (
SELECT max(id)
FROM user
WHERE t.ip = ip
);
Изначально я использовал такую систему SELECT id, ip, COUNT(ip) AS total, pc, country, date FROM user GROUP BY ip DESC, но после, захотел добавить ещё, чтобы каждая выведенная строка была последняя по id либо по дате, а не старая изначально.
вы почти всё правильно сделали. но
во вложенном запросе вам надо получить не один (максимальный) id, а несколько — по одному для каждого ip. это делается как раз директивой group by — её надо применить ко вложенному запросу, а не к внешнему. см. первый запрос в примере.
для подсчёта количества строк во всей таблице, соответствующих ip из получившегося набора, нужен ещё один, отдельный sql-запрос. его можно вставить прямо в список получаемых полей (заключив в скобки). см. второй запрос в примере.
вот поясняющий пример:
SQL Fiddle
MySQL 5.6 Schema Setup:
create table t (id int, ip text, d date);
insert into t (id, ip, d) values
(1, "1", "2017-05-16")
,(2, "2", "2017-05-17")
,(3, "1", "2017-05-01")
,(4, "2", "2017-05-02")
,(5, "1", "2017-05-05")
,(6, "1", "2017-05-10")
,(7, "2", "2017-05-11")
;
Query 1:
select t1.id, t1.ip, t1.d
from t as t1
where
t1.id in (
select max(t3.id) from t as t3
group by t3.ip
)
Results:
| id | ip | d |
|----|----|-----------------------|
| 6 | 1 | May, 10 2017 00:00:00 |
| 7 | 2 | May, 11 2017 00:00:00 |
Query 2:
select t1.id, t1.ip, t1.d,
(select count(1) from t as t2 where t2.ip = t1.ip) as total
from t as t1
where
t1.id in (
select max(t3.id) from t as t3
group by t3.ip
)
Results:
| id | ip | d | total |
|----|----|-----------------------|-------|
| 6 | 1 | May, 10 2017 00:00:00 | 4 |
| 7 | 2 | May, 11 2017 00:00:00 | 3 |
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники