簡體   English   中英

根據跨幾列的最大日期選擇行

[英]Select row based on max date across several columns

對於mysql數據庫

由於有幾列中的日期值,我有一個包含重復行的表。 我希望根據跨多個日期列評估的最大日期值為每個唯一的客戶ID選擇一行

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

對於每個客戶ID,我想返回在startDate,StopDate,modifyDate或buyDate列中具有最大日期的行(date列中有一些空值。

編輯以包含示例-但要確保如何在此處創建表:

***編輯

現在已經嘗試了一段時間以在此處創建帶有示例的表。 不知道。 那么發布圖片? 返回的所需行以紅色表示。

在此處輸入圖片說明

假設值永遠不會為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
          );

注意:如果超過一行包含最長日期,則將為客戶返回多行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM