数据表服务器端显示在页脚上具有特定值的列的计数结果
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
如何使用服务器端 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