如何计算 codeigniter 中 mysql table 中特定字段中的某些行

How to count some rows in a specific field in mysql table in codeigniter

我想获得如下统计数据:

--------------------------------------
NAME    HIGH    MEDIUM    LOW    TOTAL
--------------------------------------
ali     2       0         1      3
hacen   1       1         0      2
--------------------------------------

来自 table 个任务

----------------------------------
NAME     ASSIGNED-TO     PERIORITY
----------------------------------
task-1   ali             high
task-2   ali             high
task-3   ali             low
task-4   hacen           high
task-5   hacen           medium
----------------------------------

使用 codeigniter 3

这里是一个示例 MySQL 查询,它可以完成您正在寻找的内容:

SELECT
  `ASSIGNED-TO` AS `NAME`,
  COUNT(CASE WHEN priority = "high" THEN 1 ELSE NULL END) AS `HIGH`,
  COUNT(CASE WHEN priority = "medium" THEN 1 ELSE NULL END) AS `MEDIUM`,
  COUNT(CASE WHEN priority = "low" THEN 1 ELSE NULL END) AS `LOW`,
  COUNT(*) AS `TOTAL`
FROM `TASKS`
GROUP BY `ASSIGNED-TO`

CASE 语句与聚合函数 SUMCOUNT 一起使用。

查询

SELECT `ASSIGNED-TO` AS `NAME`,
SUM(CASE `PRIORITY` WHEN 'high' THEN 1 ELSE 0 END) AS `High`,
SUM(CASE `PRIORITY` WHEN 'medium' THEN 1 ELSE 0 END) AS `Medium`,
SUM(CASE `PRIORITY` WHEN 'low' THEN 1 ELSE 0 END) AS `Low`,
COUNT(*) AS `Total`
FROM `tasks`
GROUP BY `ASSIGNED-TO`;