我需要通過在一個結果集中選擇MAX(日期)和SECONDMAX(日期)來整理數據集。選擇第二個最大日期 - 多個記錄
但是,數據源包含多個記錄,其中將包含多個不同的MAX/SECONDMAX日期。
每條記錄都有一個唯一的實體代碼,這就是我如何確定哪一組日期屬於哪個實體。
我已經寫了下面的查詢,但我不斷收到一條消息說
「錯誤代碼:1111無效使用組功能的
SELECT
entity_code 'Entity Code',
(SELECT MAX(visit_date)
FROM z_dev.entities_visited A
WHERE visit_date < (SELECT MAX(visit_date)
FROM z_dev.entities_visited D
WHERE D.entity_code = A.entity_code) AND
C.entity_code = A.entity_code),
(SELECT MAX(visit_date)
FROM z_dev.entities_visited B
WHERE visit_date = MAX(visit_date) AND C.entity_code = B.entity_code),
cycle_end_date
FROM z_dev.entities_visited C
GROUP BY entity_code;
樣本數據
entity_code | visit_date | cycle_end_date
------------+------------+---------------
108792 |2016-12-07 |2016-12-11
108793 |2016-12-08 |2016-12-11
108795 |2016-12-06 |2016-12-11
108796 |2016-12-05 |2016-12-11
108795 |2016-12-13 |2016-12-18
108792 |2016-12-14 |2016-12-18
108793 |2016-12-14 |2016-12-18
108796 |2016-12-16 |2016-12-18
給我們一些示例數據http://sqlfiddle.com/ –
見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for什麼似乎對我來說是一個非常簡單的SQL查詢 – Strawberry