it-swarm.com.ru

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

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

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

Вот пример данных в таблице '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!)

22
user3140879

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

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

Попробуй это: 

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

Легко!

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