0
私は次のようなMySQLテーブルを持っています:id、date、複数のint
フィールドは0/1です。各行に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
と行と日付が1(それ以外の場合は0)を持っている場合は最も早い日付と、各int
列内の1で、各id
のための単一の行を取得したいです。
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;
を結合するには、次のコマンドを使用していたが、私は最小の日付と行のみを使用する方法がわからなかったし、どのように出力に日付を追加します。
: