0

次のような構造のテーブルがあります。このテーブルの内容は重複しています。最小価格でレコードを表示したいと思います。

GROUP  IDX  NAME       PRICE

141003  6   0285-00    499.88000
141003  2   028500     519.13000
141003  1   0285-00    424.12000
141005  2   02851      559.13000
141005  1   0285-1     434.12000

結果表

141003  1   0285-00    424.12000
141005  1   0285-1     434.12000

私はこれを試しましたが、返された結果は次のとおりです。

141003  6   0285-00    499.88000

クエリ:

select group, idx, name, price
                FROM table
                GROUP BY group
                ORDER BY price;
4

3 に答える 3

2

各グループの最低価格を知りたい場合は、次のクエリを使用してください。

select `group`, `idx`, `name`, MIN(price) AS min_price
                FROM `table`
                GROUP BY `group`;

'MIN'関数のドキュメント

于 2012-11-08T09:42:47.963 に答える
1
SELECT group, idx, name, price
    FROM table
    WHERE group = 141003
    ORDER BY price ASC
    LIMIT 1;

トリックを行います。

于 2012-11-08T09:41:17.177 に答える
0

まず第一に、グループはMySQLの予約語です。その周りに`を使用するか、テーブルの名前を変更する必要があります。このような:

select `group`, idx, name, price from test_2 where `group` = 141003 order by price desc limit 1;

グループが1つの値を持つwhere条件にある場合、なぜgroup byを実行したいのですか?すべてのグループの中で最も安いアイテムが欲しいですか?

于 2012-11-08T10:08:05.067 に答える