【问题标题】:Summary of log types per day每天的日志类型摘要
【发布时间】:2014-01-31 02:17:22
【问题描述】:

tbl_logs 有以下列:

logtimestamp, level, message

“级别”可以是:错误、警告、信息、正常

我想创建一个查询,返回每天每个级别的日志数量摘要:

logdate, error_qty, warning_qty, info_qty, ok_qty

这可以在单个查询中完成吗?

我试过了:

SELECT DATE(logtimestamp) as logdate, count(*) as qty, level
FROM tbl_logs
GROUP BY logdate, level
ORDER BY logdate DESC

但是这个查询每个日志日期/级别组合返回一个 ROW(日期将重复)。

我还尝试使用 UNION 创建查询:

SELECT count(*) as error_qty ... WHERE level = 'error'...
UNION 
SELECT count(*) as warning_qty ... WHERE level = 'warning'...
...

但无法让它工作。

这可以在一个查询中完成,还是我需要执行多个查询并在我的应用程序中组合输出?

【问题讨论】:

    标签: mysql group-by summary


    【解决方案1】:
    SELECT DATE(logtimestamp) AS logdate,
        SUM(level = 'error') AS error_qty,
        SUM(level = 'warning') AS warning_qty,
        SUM(level = 'info') AS info_qty,
        SUM(level = 'ok') AS ok_qty
    FROM tbl_logs
    GROUP BY logdate
    ORDER BY logdate DESC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      相关资源
      最近更新 更多