2

3 つの整数フィールドと 1 つの文字列フィールド (データのみ) を持つテーブルがあるとします。

たとえば、次のようになります。

Id      Category    Value   Data
1       1           3       ...
2       1           4       ...
3       2           2       ...
4       2           4       ...
5       3           5       ...
6       3           6       ...
7       3           2       ...
8       4           1       ...

私がやりたいことは、結果セットにCategory最小Valueフィールドを持つ行を含めることです。この場合、次のように返されます。

Id      Category    Value   Data
1       1           3       ...
3       2           2       ...
7       3           2       ...
8       4           1       ...

そのようなクエリをどのように書くのですか?

ありがとう!

4

3 に答える 3

3
select T1.Id,
       T1.Category,
       T1.Value,
       T1.Data
from YourTable as T1
  inner join (
               select Category,
                      min(Value) as Value
               from YourTable
               group by Category
             ) as T2
    on T1.Category = T2.Category and
       T1.Value = T2.Value
于 2011-06-13T12:05:43.627 に答える
1
select *
from mytable t
join (select category, min(value) as value from mytable group by 1) x
    on t.value = x.value and t.category = x.category

内部選択により、最終結果に必要なカテゴリと値が取得されます。次に、メイン テーブルに結合してすべての列を取得します。

于 2011-06-13T12:02:42.177 に答える
0
SELECT category, MIN(value) as Value
FROM table
GROUP BY category

カテゴリ列のMIN関数と結果を使用します。GROUP BY

于 2011-06-13T11:55:51.917 に答える