0
我有一個MySQL表如下:id,日期和多個int
字段與0/1。每行中只有一個int
字段將包含單個1,其他列全部爲0.日期可以重複爲每個id
。mysql獲取最小日期,與列組合列
id | date | isX | isY | isZ
-------+--------------+-----+-----+-----
111111 | '1994-04-09' | 0 | 1 | 0
222222 | '1991-07-29' | 1 | 0 | 0
222222 | '1991-07-29' | 0 | 1 | 0
333333 | '1993-06-29' | 0 | 0 | 1
333333 | '1993-06-29' | 0 | 1 | 0
333333 | '1996-04-09' | 0 | 1 | 0
我希望得到一個單獨的行,每個id
,在每個int
列的最早日期和1,如果與id
和日期的任何行有1(否則爲0)。
id | date | isX | isY | isZ
-------+--------------+-----+-----+-----
111111 | '1994-04-09' | 0 | 1 | 0
222222 | '1991-07-29' | 1 | 1 | 0
333333 | '1993-06-29' | 0 | 1 | 1
我使用以下命令將int
列
select id,
if(sum(isX)>0,1,0) as isX,
if(sum(isY)>0,1,0) as isY,
if(sum(isZ)>0,1,0) as isZ
from table group by id;
結合,但我不知道如何用最小的日期只使用那些行,以及如何將它們添加到輸出。