选择按实体分组的每个文档类型的最大行值

时间:2017-03-09 06:47:32

标签: mysql max

我从表中选择特定列的最大值时遇到了一些问题。

通过使用表单将数据插入到表中,并且可以一起上载3种不同的文档类型,或者一次只上载一种文档类型。

我想展示"最新"屏幕上每个文档类型的文档,但我不知道如何实现这一点。最新文档仅由mod_date确定,在此方案中与上载日期相同。对于本专栏,我实际上不仅使用了TIMESTAMP字段DATE。

表结构:

entity_number | doc_name | doc_type| mod_date   |
12348         | P_12348  | 1       | 2017-01-01 |
12348         | Z_12348  | 2       | 2017-01-02 | 
12348         | A_12348  | 1       | 2017-01-02 |    
11184         | P_11184  | 1       | 2017-01-02 | 
11184         | Z_11184  | 1       | 2017-01-02 |       
11184         | A_11184  | 1       | 2017-01-03 | 
11184         | G_11184  | 2       | 2017-01-03 | 
11184         | B_11184  | 3       | 2017-01-03 | 

最初,我希望从我的查询中显示以下结果:

entity_number | doc1_name | doc2_name | doc3_name |
12348         | A_12348   | Z_12348   |           |
11184         | A_11184   | G_11184   | B_11184   |

我尝试的查询如下,但由于某种原因,我只返回第一个结果。

SELECT 
    entity_number
,   MAX(CASE WHEN doc_type = 1 THEN doc_name END) doc1_name
,   MAX(CASE WHEN doc_type = 2 THEN doc_name END) doc2_name
,   MAX(CASE WHEN doc_type = 3 THEN doc_name END) doc3_name
FROM
    scrm.mytable
GROUP BY
    entity_number;

如果您需要更多详细信息,请与我们联系。

0 个答案:

没有答案