MYSQL 如何将一列与另一列的计数连接作为 DB 的输出

标签 mysql sql count concatenation

我有一个 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/

相关文章:

sql - 如何使用 INSERT ... ON CONFLICT ... 更新所有列?

sql - Count() 在 SQL 中没有按预期工作

r - 计算列中的出现次数并在 R 中创建变量

php - 在注册表中选择下拉选项

PHP MySQL : select from database and populate form

mysql - SQL 报告每个供应商、每种木材类型和等级

jquery - 如何使用 ColdFusion/jQuery 在同一页面上发布表单、更新查询并显示结果?

delphi - 计算备忘录中的特定文本(Delphi)

php - 将参数从一个 PHP 页面传递到另一个页面 - 它总是获得最大的 (MySQL)

php - Mysqli 选择列名但跳过第一列