2015-10-30 247 views
1

對於mysql數據庫根據跨越多個列的最大日期選擇行

我有一個包含重複行的表,因爲幾列中的日期值。我期待選擇基於跨幾個日期列評價了最大日期值對每個獨特的客戶ID單行

[客戶ID,的startDate,StopDate,modifyDate,buyDate]

對每一個客戶ID,我'想要返回startDate,StopDate,modifyDate或buyDate列中有最大日期的行(日期列中有一些空值)

編輯包含示例 - 但要確定如何創建表這裏:

***編輯

現在已經嘗試了很長時間來創建一個表格。無法弄清楚。所以發佈圖片?返回的所需行以紅色表示。

enter image description here

+1

請編輯您的問題,並提供樣本數據和預期結果。 –

回答

0

假設值總是NULL,您可以使用greatest()

select t.* 
from table t 
where greatest(t.startDate, stopDate, buyDate) = 
      (select max(greatest(t.startDate, stopDate, buyDate)) 
      from t t2 
      where t2.customerid = t.customerid 
     ); 

注:如果不止一行包含最大日期,這將返回多行的客戶。