我从表中选择特定列的最大值时遇到了一些问题。
通过使用表单将数据插入到表中,并且可以一起上载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;
如果您需要更多详细信息,请与我们联系。