Отсеить строки сгруппированных полей Mysql

133
11 февраля 2022, 02:30

Есть запрос вида

SELECT login, subs_id, ip, login_out 
FROM cam.test 
WHERE subs_id IN (SELECT subs_id 
                  FROM cam.test 
                  where login_out > 0 and (UNIX_TIMESTAMP() - login_out) < 30
                  GROUP BY subs_id 
                  HAVING COUNT(id) > 1
                  and login_out > 0
                  )
order by login;

выхлоп такой

login         |subs_id|ip            |login_out |
--------------|-------|--------------|----------|
birolev1      |     46|95.3.25.168   |1578426551|
birolev2      |     46|95.3.125.170  |1578426551|
bocskori1     |    227|16.118.43.11  |1578426549|
bocskori2     |    227|16.118.43.11  |1578426549|
bugia         |    371|95.3.25.169   |1578426549|
bugia2        |    371|95.3.25.169   |1578426553|

Нужно дописать запрос, чтоб убрать те строки, где ip идентичный в полях с одинаковым subs_id, тоесть нужно получить

login         |subs_id|ip            |login_out |
--------------|-------|--------------|----------|
birolev1      |     46|95.3.25.168   |1578426551|
birolev2      |     46|95.3.125.170  |1578426551|
Answer 1

Почему не добавить ещё одну группировку с HAVING?

SELECT MAX(login)
     , MAX(subs_id)
     , MAX(login_out)
     , ip
  FROM cam.test 
 WHERE subs_id IN (
         SELECT subs_id 
           FROM cam.test 
          WHERE login_out > 0 AND (UNIX_TIMESTAMP() - login_out) < 30
          GROUP BY subs_id 
         HAVING COUNT(id) > 1 AND login_out > 0
       )
 GROUP BY ip
HAVING COUNT(*) = 1
 ORDER BY login
;
READ ALSO
Как вывести ответ в JSON формате

Как вывести ответ в JSON формате

Всем привет я хочу удалить все сообщения, и если сообщения удалились то мне должен придти ответ в JSON формате {"Все сообщения удалены"} Однако...

115
Gradle не может скачать jar файлы

Gradle не может скачать jar файлы

Ссылки работаю перехожу все качает, но выходит ошибка:

85
Разница времени в формате HH:mm:ss:SSS

Разница времени в формате HH:mm:ss:SSS

Подскажите пожалуйста как вычислить разницу времени типа String, например 12:07:32434 и 11:01:11

71