选择Min&来自具有该类别的表格中的最大值

时间:2018-03-15 15:52:09

标签: mysql sql max min

我有一个包含多列的表格。我需要从整个表中获取最小值和最大值,还要显示最小值和最大值所在的类别。我需要的列名是Asset_Type和Asset_Value。有多个(5+)资产类型,但我只需要显示最小值和最大值的资产类型。

SELECT Asset_Type, MAX(Asset_Value), MIN(Asset_Value) 
FROM Asset
GROUP BY Asset_Type

这就是我所拥有的,但这会为每种资产类型显示最小值和最大值,而不仅仅是表格的最小值和最大值。

2 个答案:

答案 0 :(得分:0)

考虑到最大值可能具有与最小值不同的Asset_type,您需要使其成为单独的查询(此处不考虑可能存在具有相同最小值/最大值的多个Asset_types。

(select 'max', Asset_Type, max(Asset_Value) as 'Asset_Value'
 from Asset
 group by Asset_Type
 order by 3 desc
 limit 1)
union all
(select 'min', Asset_Type, min(Asset_Value)
 from Asset
 group by Asset_Type
 order by 3 asc
 limit 1)

答案 1 :(得分:0)

可以有许多具有最小值的资产类型和许多具有最大值的资产类型。因此,只需选择所有asset_types,其中值与最小值或最大值(您在子查询中查找)匹配:

select distinct asset_value, asset_type
where asset_value = (select min(asset_value) from asset)
   or asset_value = (select max(asset_value) from asset)
order by asset_value, asset_type;

还有其他方法可以编写此查询,但这个想法保持不变。