我如何根据其内容计算行?假设我有这样的表
[表a]
ID_COMPANY | NAME
-----------------------------
A1 | COMPANY A
Run Code Online (Sandbox Code Playgroud)
[表b]
ID_COMPANY | USER | TYPE
--------------------------------------
A1 | USER A | MANAGER
A1 | USER B | DEPT001
A1 | USER C | CUSTOMR
A1 | USER D | DEPT002
A1 | USER E | CUSTOMR
Run Code Online (Sandbox Code Playgroud)
我怎么能得到这样的结果?
ID_COMPANY | NAME | TOTAL_MANAGER | TOTAL_STAFF_DEPT | TOTAL_CUST
----------------------------------------------------------------------------
A1 | COMPANY A | 1 | 2 | 1
Run Code Online (Sandbox Code Playgroud)
大家好
SELECT
`table_a`.`ID_COMPANY`,
`NAME`,
SUM(IF(`TYPE` = 'MANAGER', 1, 0)) AS `TOTAL_MANAGER`,
SUM(IF(`TYPE` LIKE 'DEPT%', 1, 0)) AS `TOTAL_STAFF_DEPT`,
SUM(IF(`TYPE` = 'CUSTOMR', 1, 0)) AS `TOTAL_CUST`
FROM `table_a`
JOIN `table_b`
USING (`ID_COMPANY`)
GROUP BY `table_a`.`ID_COMPANY`
Run Code Online (Sandbox Code Playgroud)
SUMs 的标准可能需要调整,因为我不明白你想要在那里实现什么.