Select MySQL 中每件商品的最低价值
Select min value per item in MySQL
你好我有以下MySQLtable:
id item value
1 A 11
2 A 20
3 B 2
4 C 1
5 B 14
6 C 12
我想要做的是 select 具有最低值的项目 - 我试图根据对这个论坛的搜索做的是使用以下查询:
SELECT *,
MIN(value)
FROM mytable
GROUP BY item
预期的结果应该是A => 11, B => 2; C => 1 然而,对于某些项目,最小值是正确的,而对于其他一些项目,最小值是不同的值。请注意,我的table 包含大约 100 行。
这在 oracle 中有效
SELECT item, min(value)
FROM mytable
GROUP BY item
select *
from mytable t1
inner join
(
select min(value) value, id
from mytable
group by id
) t2
on t1.id = t2.id
and t1.value= t2.value
你可以这样试试
SELECT t.* FROM mytable t
JOIN
( SELECT item, MIN(value) minVal
FROM mytable GROUP BY item
) t2
ON t.value = t2.minVal AND t.item = t2.item;
如果您需要每个项目的 min(value) 的所有信息并且 "value" 列的数据类型为 int,则 运行 以下查询,
select * from mytable
where (item,value) in
(
SELECT item, min(value)
FROM mytable
GROUP BY item
)
你好我有以下MySQLtable:
id item value
1 A 11
2 A 20
3 B 2
4 C 1
5 B 14
6 C 12
我想要做的是 select 具有最低值的项目 - 我试图根据对这个论坛的搜索做的是使用以下查询:
SELECT *,
MIN(value)
FROM mytable
GROUP BY item
预期的结果应该是A => 11, B => 2; C => 1 然而,对于某些项目,最小值是正确的,而对于其他一些项目,最小值是不同的值。请注意,我的table 包含大约 100 行。
这在 oracle 中有效
SELECT item, min(value)
FROM mytable
GROUP BY item
select *
from mytable t1
inner join
(
select min(value) value, id
from mytable
group by id
) t2
on t1.id = t2.id
and t1.value= t2.value
你可以这样试试
SELECT t.* FROM mytable t
JOIN
( SELECT item, MIN(value) minVal
FROM mytable GROUP BY item
) t2
ON t.value = t2.minVal AND t.item = t2.item;
如果您需要每个项目的 min(value) 的所有信息并且 "value" 列的数据类型为 int,则 运行 以下查询,
select * from mytable
where (item,value) in
(
SELECT item, min(value)
FROM mytable
GROUP BY item
)