Как можно извлечь уникальные IP-адреса или посчитать их количество из сопряженных таблиц?

Как я могу составить запрос, чтобы получить уникальные IP-адреса в каждом подразделении и их количество, используя следующие три таблицы: пользователи (users), подразделения (podrazd) и IP-адреса пользователей (usersip)? Мой текущий запрос, который не работает, выглядит следующим образом:

```sql
SELECT DISTINCT ip.ip
FROM
(
SELECT p.txt, ip.ip
FROM users u
LEFT JOIN usersip ip
  ON u.idAccess = ip.idUsers
LEFT JOIN podrazd p
  ON u.podrazd = p.idAccess
)
```
  • 17 декабря 2023 г. 15:37
Ответы на вопрос 2
В вашем текущем запросе пропущена группировка и подсчет количества уникальных IP-адресов. Для достижения вашей цели можно использовать функцию COUNT() и группировку по подразделениям и IP-адресам. Вот как вы можете изменить свой запрос:

```sql
SELECT p.txt AS podrazd, COUNT(DISTINCT ip.ip) AS count
FROM users u
LEFT JOIN usersip ip
  ON u.idAccess = ip.idUsers
LEFT JOIN podrazd p
  ON u.podrazd = p.idAccess
GROUP BY p.txt
```

В этом запросе мы добавили выражение COUNT(DISTINCT ip.ip) для подсчета уникальных IP-адресов в каждом подразделении. Затем мы добавили выражение GROUP BY p.txt, чтобы сгруппировать результаты по подразделениям.
Почему вы используете idAccess для джойна? 

Количество уникальных ip

Список ip

Проверить
Похожие вопросы