计算分组结果中相同表字段的不同值

时间:2014-01-27 13:41:10

标签: mysql count group-by

我有一个表,按日期表示来自系统事件的日志文件。 我希望,如果可能的话,按日期计算不同系统事件的发生。

我可以通过

计算一个值
SELECT count(log_id) as login_count, `date` FROM minecraft_log.universal_log 
WHERE plugin=’system’ AND action=’login’ 
GROUP BY DATE( `date` )
ORDER BY DATE( `date` );

这将告诉我插件“系统”生成事件“登录”的频率。但是,如果我想通过相同的查询计算另一个事件,如插件“用户”事件“删除”,我该怎么办?

我不想为几个事件添加计数,而是为两个不同的条件设置个别计数。

我还需要其他查询吗?

1 个答案:

答案 0 :(得分:1)

此查询将为您提供每个组合......

  SELECT COUNT(log_id) login_count
       , DATE(date)
       , plugin
       , action
    FROM universal_log l
-- WHERE (x='a' AND y='b') OR (x='m' AND y='n') -- optional parameters
-- you can also write that this way...
-- WHERE (x,y) IN (('a','b'),('m','n'))
   GROUP 
      BY DATE( `date` )
       , plugin
       , action;