数据表服务器端显示在页脚上具有特定值的列的计数结果

Datatable serverside show count result of column with spesific values on footer

如何使用服务器端 DataTable 像这样在页脚上制作总行

| Name  | Boy  | Girl |
| Boy1  |  -   |      |
| Girl1 |      |  -   |
| Boy2  |  -   |      |
| Total |  2   |  1   |

我使用这个查询,但结果只显示 1 个数据(例如应该是 3 个数据)

select name, sum(case when sex = "male" then 1 else 0 end) as boy, sum(case when sex = "female" then 1 else 0 end) as girl' from student;

谢谢

如果您的数据库支持 ROLLUP 功能,那么您可以尝试以下操作:

SELECT
    name,
    SUM(CASE WHEN sex = "male"   THEN 1 ELSE 0 END) AS boy,
    SUM(CASE WHEN sex = "female" THEN 1 ELSE 0 END) AS girl
FROM student
GROUP BY name
WITH ROLLUP

如果你的数据库支持ROLLUP,那么可以使用UNION在总计的底部添加一条记录:

SELECT
    name,
    SUM(CASE WHEN sex = "male"   THEN 1 ELSE 0 END) AS boy,
    SUM(CASE WHEN sex = "female" THEN 1 ELSE 0 END) AS girl
FROM student
GROUP BY name
UNION ALL
SELECT
    'total',
    SUM(CASE WHEN sex = "male"   THEN 1 ELSE 0 END),
    SUM(CASE WHEN sex = "female" THEN 1 ELSE 0 END)
FROM student
ORDER BY
    CASE WHEN name = 'total' THEN 1 ELSE 0 END,
    name