如何计算 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
语句与聚合函数 SUM
和 COUNT
一起使用。
查询
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`;
我想获得如下统计数据:
--------------------------------------
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
语句与聚合函数 SUM
和 COUNT
一起使用。
查询
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`;