2016-10-03 23 views
-1

例如,我有表:如何返回多列的最小值并返回它的标题?

Name Week 8am-9am 9am-10am 10am-11am 

C1 1 27%  32%  11% 
C1 2 4%  29%  95% 
C2 3 9%  44%  57% 

我期待与特定名称的星期和时间框架,例如一起返回最小值对于名称C1:

Name Week 8am-9am 
C1 2 4% 
+0

哪个最小值,哪一列? – jarlh

+0

时间框架的最小值,所以在这种情况下;早上8点到早上9点,上午10点 –

回答

0

检查类似的东西:

select name, week, 8am-9am from table t1 
where 8am-9am in (selec min(8am-9am) from table t2 group by name having t2.name=t1.name) 
0

因为你的表的设计是不完美的我开始与派生表UNION ALL不同的列到一个。

select * 
from tablename 
where (select min(val) 
     from 
     (
      select "8am-9am" as val from tablename 
      union all 
      select "9am-10am" as val from tablename 
      union all 
      select "10am-11am" as val from tablename 
     )) in ("8am-9am", "9am-10am", "10am-11am")