我有一个包含多列的表格。我需要从整个表中获取最小值和最大值,还要显示最小值和最大值所在的类别。我需要的列名是Asset_Type和Asset_Value。有多个(5+)资产类型,但我只需要显示最小值和最大值的资产类型。
SELECT Asset_Type, MAX(Asset_Value), MIN(Asset_Value)
FROM Asset
GROUP BY Asset_Type
这就是我所拥有的,但这会为每种资产类型显示最小值和最大值,而不仅仅是表格的最小值和最大值。
答案 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;
还有其他方法可以编写此查询,但这个想法保持不变。