今回のケースであればGREATESTで十分ですが、データの持ち方を変えればMAXで拾えます。
SQL
1create table tbl (id int,data_no int,value int,unique (id,data_no));
2insert into tbl values
3(1,1,700),(1,2,200),(1,3,300),(1,4,400),(1,5,100)
4,(2,1,100),(2,2,800),(2,3,200),(2,4,300),(2,5,200)
5,(3,1,100),(3,2,300),(3,3,900),(3,4,100),(3,5,100);
元データ表示
SQL
1select id
2,sum((data_no=1)*value) as data1
3,sum((data_no=2)*value) as data2
4,sum((data_no=3)*value) as data3
5,sum((data_no=4)*value) as data4
6,sum((data_no=5)*value) as data5
7from tbl
8group by id;
idごとの最大値
SQL
1select id,max(value) as max_val from tbl group by id;
元のテーブルを利用
普通にいけますよね?
SQL
1create table tbl2 (id int,data1 int,data2 int,data3 int,data4 int,data5 int);
2insert into tbl2 values
3(1,700,200,300,400,100)
4,(2,100,800,200,300,200)
5,(3,100,300,900,100,100);
6select id,greatest(data1,data2,data3,data4,data5) as max_val from tbl2;
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/17 13:46
2016/10/17 13:48
2016/10/17 13:53
2016/10/17 13:58