Подтвердить что ты не робот

MySQL подсчет различимых значений в нескольких столбцах

Я написал script, который запускается каждый раз, когда пользователь входит в компьютер в нашем домене. Этот script делает запись пользователя, а также компьютера, в который они вошли. Любое количество пользователей может войти в любое количество компьютеров.

Я просто унаследовал эту ИТ-среду от консультанта, которого больше нет, и я пишу этот маленький запрос, поэтому, когда я получаю звонок от пользователя, я могу выполнить поиск по этому имени пользователя и разумно предсказать, на каком компьютере они находятся используя количество раз, когда они вошли в любой компьютер.

Здесь пример данных в таблице "login":

    COMPUTER        USER
    ncofp02         lee
    ncofp02         lee
    ncofp02         andy
    ncodc01         andy
    ncodc01         andy
    ncodc01         lee

То, что я нахожу себя в голове, - это логика подсчета различных значений в нескольких столбцах. Я бы хотел увидеть результат следующим образом:

    COMPUTER       USER   COUNT
    ncofp02        lee    (2)
    ncofp02        andy   (1)
    ncodc01        lee    (1)
    ncodc01        andy   (2)

Есть ли способ выполнить это с помощью одного запроса в mysql, или мне нужно запустить цикл php? (Booooo!)

4b9b3361

Ответ 1

Просто укажите несколько столбцов в предложении GROUP BY.

SELECT computer, user, count(*) AS count
FROM login
GROUP BY computer, user

Ответ 2

Попробуйте следующее:

SELECT l.computer, l.user, COUNT(DISTINCT l.computer, l.user) AS count
FROM login l 
GROUP BY l.computer, l.user

Ответ 3

Легко!

SELECT 
    computer, user, COUNT(DISTINCT computer, user) AS count
FROM 
    login