MySQL Group By 计算两个字段

标签 mysql

mysql> SELECT date_format(FROM_UNIXTIME(timestamp), '%M') AS month,   
       YEAR(FROM_UNIXTIME(timestamp)) as year, left(content_value, 12) AS status, 
       count(*) AS count FROM gg_groom_content 
       WHERE content_value LIKE '%created ofi%' OR 
       content_value LIKE '%ofi rejected%' 
       GROUP BY MONTH(from_unixtime(timestamp)), YEAR(from_unixtime(timestamp));

Result:
+-----------+------+--------------+-------+
| month     | year | status       | count |
+-----------+------+--------------+-------+
| January   | 2014 | OFI Rejected |   861 |
| February  | 2014 | Created OFI: |   777 |
| March     | 2014 | Created OFI: |   537 |
| April     | 2014 | OFI Rejected |   285 |
| May       | 2014 | OFI Rejected |   198 |
| September | 2011 | (06:32:40 PM |     1 |
| November  | 2013 | Created OFI: |    86 |
| December  | 2013 | Created OFI: |   561 |
+-----------+------+--------------+-------+
8 rows in set (0.91 sec)

但是我试图获得每个月的每个状态:

例如:

5 月份应该有已拒绝的 OFI 总数和已创建的 OFI 总数。我怎样才能做到这一点?

最佳答案

可能有更好的解决方案,但您可以尝试使用 UNION ALL 进行 2 个单独的查询,如下所示

SELECT date_format(FROM_UNIXTIME(timestamp), '%M') AS month,   
YEAR(FROM_UNIXTIME(timestamp)) as year, left(content_value, 12) AS status, 
count(*) AS count FROM gg_groom_content 
WHERE content_value LIKE '%created ofi%'
GROUP BY MONTH(from_unixtime(timestamp)), YEAR(from_unixtime(timestamp));

UNION ALL

SELECT date_format(FROM_UNIXTIME(timestamp), '%M') AS month,   
YEAR(FROM_UNIXTIME(timestamp)) as year, left(content_value, 12) AS status, 
count(*) AS count FROM gg_groom_content 
WHERE content_value LIKE '%ofi rejected%' 
GROUP BY MONTH(from_unixtime(timestamp)), YEAR(from_unixtime(timestamp));

关于MySQL Group By 计算两个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23839225/

相关文章:

php - Ajax 脚本未插入数据库

mysql - 原则 2 中 TRUNCATE 的 getResult()

MySQL:按列获取行大小

更新前的 MySQL 使用 PhpMyAdmin 触发插入语法错误

php - 使用用于 MySQL 的 PDO 准备语句将多个值从数据数组插入多个列

mysql - 使用 MySQL 生成按货币分组的填补空白的每日销售报告

mysql - mysql中的where子句

php - 从下拉列表中选择并使用 php mysql inner join 显示正确的结果

mysql - 按列绑定(bind)两个SQL查询的结果

PHPExcel 下载无法正常工作