如何使用PHP函数countfrom1table(Mysql)从2个条件(2列)计算值
从数据库如何使用PHP函数countfrom1table(Mysql)从2个条件(2列)计算值,php,mysql,Php,Mysql,从数据库 ID Name Department position ================================ 1 A MK IT 2 B MK RD 3 C MK EN 4 D BD IT 5 E BD RD 6 F BD EN 7 G BD IT 8 H
ID Name Department position
================================
1 A MK IT
2 B MK RD
3 C MK EN
4 D BD IT
5 E BD RD
6 F BD EN
7 G BD IT
8 H OB IT
9 I MK EN
如何编写代码以显示在表中,如下所示
在表中显示类似的内容
position/departmet MK BD OB
===================================
IT 1 2 1
RD 1 1 0
EN 2 1 0
我只是搞糊涂了。用
CASE
试试看
SELECT position,
SUM(CASE WHEN Department = 'MK' THEN 1 ELSE 0 END) MK,
SUM(CASE WHEN Department = 'BD' THEN 1 ELSE 0 END) BD,
SUM(CASE WHEN Department = 'OB' THEN 1 ELSE 0 END) OB
FROM tableName
GROUP BY position
或者,如果列数未知,则使用Prepared语句
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(case when Department = ''',
Department,
''' then 1 ELSE 0 end) AS ',
Department
)
) INTO @sql
FROM tableName;
SET @sql = CONCAT('SELECT position, ', @sql, '
FROM tableName
GROUP BY position');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
我已经编辑了我的q,代码是否相同,谢谢。第二个查询仍然可以工作,多了一个q选择位置,不,
MySQL
没有内置的PIVOT
,我想你需要使用第二个查询。