我有一个名为“Inventory”的表,其中包含Item(varchar),Amount(int),Type(varchar)
字段我想要提取的是包含以下字段的行:
Type
类型的所有项目的Item字段中的最短条目类型
的所有项目的所有金额的总和我有以下内容:
SELECT Item, sum( Amount ) FROM Inventory GROUP BY Type
给出了我想要的东西,除了它没有返回最短的项目,而是它有一个其他项目(我认为它找到的最后一个)。最短的意思是最小字符串长度。
感谢您的帮助。
答案 0 :(得分:8)
您可以通过子查询获取它。
select type, sum(amount), item
from inventory
group by type
having length(item) <= (select min(length(item)) from inventory)
用户Order By columnName ASC /DESC
进行排序
和LIMIT 1
从中获取一个
答案 1 :(得分:1)
select type, sum(amount), min(length(item)) from inventory group by type
应该做你想做的事情
答案 2 :(得分:0)
不知道应该去哪里,所以我正在创建一个新答案:
select e.type, min_item.s, e.item from inventory e inner join (select e2.type, sum(e2.amount) as s, e2.item, min(length(e2.item)) as bb from inventory e2 group by e2.type) min_item on (length(e.item)=min_item.bb) group by e.type;
我对此进行了测试,但确实有效。