一尘不染

MySQL在多个列上计算不同的值

mysql

我编写了一个脚本,该脚本在用户每次登录我们域中的计算机时运行。此脚本记录用户以及他们登录的计算机。任意数量的用户可以登录任意数量的计算机。

我只是从一个不在的顾问那里继承了这个IT环境,并且正在编写这个小查询,因此当接到用户的呼叫时,我可以按该用户的名字进行搜索,并合理地预测该用户正在使用的计算机。他们登录到任何给定计算机的次数。

这是“登录”表中数据的示例:

    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?(嘘!)


阅读 310

收藏
2020-05-17

共1个答案

一尘不染

只需在GROUP BY子句中列出多列即可。

SELECT computer, user, count(*) AS count
FROM login
GROUP BY computer, user
2020-05-17