mysql GROUP BY 显示所有对应字段

标签 mysql

我的表格如下:

ID      EMP_ID      NAME        ACTIVITY_DATE       ACTIVITY_CODE

1       EMP01      ROCKY        2018-02-19          AC04  
2       EMP02      SMITH        2018-02-19          AC09
3       EMP02      SMITH        2018-02-19          AC10
4       EMP01      ROCKY        2018-02-20          AC04
5       EMP01      ROCKY        2018-02-20          AC04
6       EMP03      RICKY        2018-02-22          AC05
7       EMP03      RICKY        2018-02-22          AC07
8       EMP02      SMITH        2018-02-22          AC09

我想从查询结果中消除重复的日期并按 ID 顺序显示所有相应的字段,我的表格应该如下所示:

ID      EMP_ID      NAME        ACTIVITY_DATE    ACTIVITY_CODE     COUNT

1       EMP01      ROCKY        2018-02-19          AC04            3
4       EMP01      ROCKY        2018-02-20          AC04            2
6       EMP03      RICKY        2018-02-22          AC05            3

我尝试过这个查询:

SELECT ID, EMP_ID, NAME, ACTIVITY_DATE, ACTIVITY_CODE 
FROM emp_entries
GROUP BY ID, EMP_ID, NAME, ACTIVITY_DATE, ACTIVITY_CODE

但它并没有消除重复的条目。

只有当我这样做时它才起作用:

SELECT COUNT(ACTIVITY_DATE), ACTIVITY_DATE 
FROM emp_entries
GROUP BY ACTIVITY_DATE. 

但它只显示一个字段。

最佳答案

Use inner join and subquery:

select e1.ID ,e1.EMP_ID ,e1.NAME,e1.ACTIVITY_DATE,e1.ACTIVITY_CODE,e2.count 
from emp_entries e1 inner join
(
SELECT COUNT(ACTIVITY_DATE) as count, ACTIVITY_DATE, min(id) as mid
FROM emp_entries
GROUP BY ACTIVITY_DATE
) e2 on e1.id=e2.mid

关于mysql GROUP BY 显示所有对应字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52423086/

相关文章:

python - mysql 使用 python 登录时出现 SQL 语法错误

mysql - 仅当每个元素都满足条件时才选择组

MySQL关键字搜索查询与所有关键字匹配的项目?

mysql - SQLQuery 插入查询仅影响一行

mysql - 将相同的表连接到多个表,三种不同的条件。 mysql

MySQL - 临时表中的未定义列

php - 无法通过数据库上传文件

mysql - 为什么我在这个 MySQL 中需要 COUNT(DISTINCT ...)?

php - 如何从 2 列中减去值

php - 多个 IN 运算符 mysql 组合