繁体   English   中英

从Mysql中的多个组获取最新条目

[英]Getting latest entry from multiple groups in Mysql

如果问题标题不清楚,我们深表歉意。 真的不知道如何在一行中表达以下内容。

我希望我能解释一下我想要实现的目标。 这让我很头疼。

目前,我有一张表格,其中记录着不同项目员工的培训状况。 结构是这样的:

--------------------------------------------------------------
|id|timestamp           |employee  |project    |status       |
--------------------------------------------------------------
|1 |2015-10-01 00:00:00 | john doe | project_1 | In Training |
|2 |2015-10-04 00:00:00 | jane doe | project_1 | In Training |
|3 |2015-11-01 00:00:00 | john doe | project_1 | Live        |
|4 |2015-10-08 00:00:00 | john doe | project_2 | In Training |
|5 |2015-11-01 00:00:00 | jane doe | project_2 | In Training |
|6 |2015-11-09 00:00:00 | jane doe | project_3 | Live        |

现在,管理层需要一个表/视图,以提供有关每个员工的最新状态的概述。 所以我正在寻找一个查询,返回以下内容:

-----------------------------------------------------
| employee | project_1   | project_2   | project_3   |
-----------------------------------------------------
| John Doe | Live        | In Training |             |
| Jane Doe | In Training | In Training | Live        |

因此,查询应查找每个员工和项目的最新条目,并返回该项目的状态。

有什么办法可行吗?

好,您将2个问题合并为1个。第一个问题是如何获取每个项目的每个员工的最新状态。 第二个是如何在列中显示数据。 第一个问题更有趣,所以这就是我要回答的问题。

SELECT DISTINCT x.employee
              , y.project
              , z.timestamp
              , z.status 
           FROM my_table x 
           JOIN my_table y 
           LEFT 
           JOIN 
              ( SELECT a.* 
                  FROM my_table a 
                  JOIN 
                     ( SELECT employee 
                            , project
                            , MAX(timestamp) max_timestamp 
                         FROM my_table 
                        GROUP 
                           BY employee
                            , project
                     ) b 
                    ON b.employee = a.employee 
                   AND b.project = a.project 
                   AND b.max_timestamp = a.timestamp
              ) z 
             ON z.employee = x.employee 
            AND z.project = y.project;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM