我有一张这样的表myTable
:
Name type1 type2 type3
----------------------------------------
John 3 6 9
Craig 5 2 24
我想获得“John”最高的列 - 即列名和数量。
我想不出一个解决方案来处理它,任何指针?
使用下面的查询使用名称查找最高值列:
SELECT Name, @highest_val:= GREATEST(type1, type2, type3) AS highest_col_value,
CASE @highest_val WHEN type1 THEN 'type1'
WHEN type2 THEN 'type2'
WHEN type3 THEN 'type3'
END AS highest_value_column_name
FROM myTable
WHERE Name = 'John';
如果要检索所有记录,请使用以下查询:
SELECT Name, @highest_val:= GREATEST(type1, type2, type3) AS highest_col_value,
CASE @highest_val WHEN type1 THEN 'type1'
WHEN type2 THEN 'type2'
WHEN type3 THEN 'type3'
END AS highest_value_column_name
FROM myTable;
这里GREATEST()
MySql 函数找到给定列的最大值 ashighest_col_value
并将CASE
与每一列匹配以查找列名 as highest_value_column_name
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句