我有一个名为formal
的表:
id date name d1 d2 d3 d4
1 20/10/2017 bimal 6 7 8 9
2 20/10/2017 kumar 13 10 11 12
3 20/10/2017 aman 16 17 14 15
4 20/10/2017 halim 25 21 23 16
我需要按列最小。值(value)。即 d1=6+13+16+25=60
, d2=7+10+17+21=55
, d3=8+11+14+23=56
,d4=9+12+15+19=52
。
此处下栏是 d4。所以我的 min _value
col 将为 9,12,15,19。
我的下一栏是min_value_col
。简单来说就是 d4, d4, d4, d4。
现在我的输出表将如下:
id date name d1 d2 d3 d4 min_value min_value_col
1 20/10/2017 bimal 6 7 8 9 9 d4
2 20/10/2017 kumar 13 10 11 12 12 d4
3 20/10/2017 aman 16 17 14 15 15 d4
4 20/10/2017 halim 25 21 23 16 16 d4
我需要通过mysql查询分别填写min_value
和min_value_col
字段。
最佳答案
您似乎想要:
select f.*,
(case ff.least_col
when 'd1' then d1
when 'd2' then d2
when 'd3' then d3
when 'd4' then d4
end) as least_val,
ff.least_col
from formal f cross join
(select least(sum(d1), sum(d2), sum(d3), sum(d4)) as least_val,
(case least(sum(d1), sum(d2), sum(d3), sum(d4))
when sum(d1) then 'd1'
when sum(d2) then 'd2'
when sum(d3) then 'd3'
when sum(d4) then 'd4'
end) as least_col
from formal
) ff;
关于mysql - 查找最小值列和最小值列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46988470/