1

给定以下 mysql 结果集:

 id      code       name               importance
'1234', 'ID-CS-B', 'Chocolate Sauce', '1',
'1122', 'ID-MC-A', 'Mint Choc Chip',  '5',
'5621', 'ID-MC-B', 'Mint Choc Chip',  '4',
'1221', 'ID-CS-A', 'Chocolate Sauce', '2',
'1212', 'ID-CS-C', 'Chocolate Sauce', '3',

这里有两种产品:巧克力酱和薄荷巧克力片。我想根据重要性从每个产品中提取一个实例。

我想要最重要的 Mint Choc Chip 产品和最重要的巧克力酱产品,使用“重要性”列:值越高越重要

4

2 回答 2

3
    SELECT x.*
      FROM my_table x
      JOIN 
         ( SELECT name, MAX(importance) max_importance FROM my_table GROUP BY name ) y
        ON y.name = x.name
       AND y.max_importance = x.importance;
于 2013-01-09T11:30:10.353 回答
0

也试试这个,

select b.name, max(a.importance)
from t b
left join t a
on b.id = a.id
group by b.name
;

结果:

NAME                MAX(A.IMPORTANCE)
Chocolate Sauce     3
Mint Choc Chip      5
于 2013-01-09T11:46:08.220 回答