MYSQL。你会怎么写这个查询

时间:2013-10-03 00:18:40

标签: mysql sql database

我当前的查询未返回正确的值。我的数据库充满了日志,每个日志都包含一个代码。我正在寻找4个代码,比如说(100,200,300,400)。

我需要知道某个session_id只激活了1个代码,2个代码,3个代码和所有4个代码的次数。

查询将运行4次,每次都带有不同的参数(1,2,3,4)。

因此,当我运行查询为4时,如果每个代码都有相同的session_id,则该日志将为+1。

1 个答案:

答案 0 :(得分:2)

这是一种可以一次性获得所有四项计数的方法:

SELECT codecount, COUNT(*) AS sessioncount
FROM (
    SELECT session_id, COUNT(DISTINCT code) AS codecount
    FROM log
    WHERE code IN (100, 200, 300, 400)
    GROUP BY session_id
) AS c
GROUP BY codecount;