我有一个 Mysql 数据库,我需要将显示输出发送到前端。我不想让逻辑在 Java 代码中迭代,而是希望从查询输出中获取自定义列。
Table: EmpTable
----------------------------------
EmpId | DaysCameToOffice
----------------------------------
101 | Monday
101 | Tuesday
102 | Monday
103 | Monday
102 | Wednesday
102 | Thursday
--------------------------------
Desired output (as in Query result)
---------------------------------------------------------
EmpId | displayEmp
--------------------------------------------------------
101 | 101 (2 records)
102 | 102 (3 records)
103 | 102 (1 records)
---------------------------------------------------------
尝试过的查询
SELECT m.EmpId as EmpId,
CONCAT(m.EmpId, " (", COUNT(SELECT DISTINCT(c.DaysCameToOffice) from EmpTable c, " records)") as displayEmp
FROM EmpTable m
给我:- 错误代码:1064,SQL 状态:42000] 你的 SQL 语法有错误
请帮助我
最佳答案
count()
适用于表达式,而不适用于查询,因此您确实需要将其复杂化:
select empid, concat(empid, ' (', count(distinct DaysCameToOffice),' records)') as displayEmp
from EmpTable
group by empid
但是,我会在没有串联的情况下运行查询,只是计数并在显示结果的应用程序中执行此串联。
关于MYSQL 如何将一列与另一列的计数连接作为 DB 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43896251/