我試圖返回的ID的第一次出現,由主鍵和日期(從時間戳列)返回第一次出現或記錄。這裏的數據將如何看一個例子: MySQL的:按日期
在這個例子中,下面的ID應該返回: 111,333,444
注:我想重複數據刪除通過電子郵件/日期(從最小時間戳返回ID)。返回333和444,因爲綁定到同一封電子郵件時,它們有不同的日期。 222沒有回來,因爲綁在同一個電子郵件/日期爲111,其中111具有較早時間戳
我試圖返回的ID的第一次出現,由主鍵和日期(從時間戳列)返回第一次出現或記錄。這裏的數據將如何看一個例子: MySQL的:按日期
在這個例子中,下面的ID應該返回: 111,333,444
注:我想重複數據刪除通過電子郵件/日期(從最小時間戳返回ID)。返回333和444,因爲綁定到同一封電子郵件時,它們有不同的日期。 222沒有回來,因爲綁在同一個電子郵件/日期爲111,其中111具有較早時間戳
基於您的評論,你可以通過讓每個電子郵件/日期組合的最小時間戳做到這一點。然後,你可以加入回從該行獲得額外的信息:
select t.*
from table t join
(select email, min(timestamp) as mints
from table t
group by email, date(timestamp)
) tt
on t.email = tt.email and t.timestamp = tt.mints;
試試這個:
create table your_table(id int, email varchar(10), t timestamp)
;
insert into your_table values
(111,'[email protected]','2015-01-01 00:00:00'),
(222,'[email protected]','2015-01-01 10:00:00'),
(333,'[email protected]','2015-01-01 08:00:00'),
(444,'[email protected]','2015-02-01 09:00:00')
select substring_index(ids,',',1)
from (
select email,
date(t) as dt,
group_concat(id order by t) as ids
from your_table
group by email,date(t)
order by email,date(t)
) as tmp
你爲什麼不回到222? – 2015-03-25 02:20:04
我想重複數據刪除通過電子郵件/日期(從最小時間戳返回ID)。返回333和444,因爲綁定到同一封電子郵件時,它們有不同的日期。 222沒有被返回,因爲綁定到與111相同的電子郵件/日期,其中111具有較早的時間戳。 – cometrico 2015-03-25 02:34:38
。 。這是一個巨大的澄清,應該真的加入到問題中。 – 2015-03-25 02:37:53