0

申し訳ありませんが、この問題は非常にユニークで、より良いタイトルを見つけることができませんでした。

次の形式のテーブルがあります。

--------EXAMPLE---------------------------------------------------------
Cat1           Cat2          Value
a              e1            113
b              e1            14
a              e2            15
c              e3            13
a              e1            13
a              e2            11
c              e4            1

Cat1の個別の値ごとに、Cat2でグループ化された値の最大値を見つけて、それらを合計します。

したがって、上記のCat1の表の場合='a'

ステップ1:次の行を抽出したい:

Cat1           Cat2          Value
a              e1            113
a              e2            15
a              e1            13
a              e2            11

ステップ2:Cat2に対応する最大値を抽出したい:

Cat1           Cat2          Value
a              e1            113
a              e2            15

ステップ3:値を合計して以下を取得します。

Cat1           SumOfValueColumn
a              128
b              14
c              14

上記は複数のステップで実行できますが、1つのステップで実行したいと思います。Sybaseを使用しています。

ありがとう

4

3 に答える 3

0

以下のクエリを使用してください:-

SELECT cat1、sum(Value)as sum_Value FROM(SELECT cat1、cat2、max(Value)as Value FROM#tmp1 group by cat1、cat2)d1 GROUP BY cat1

于 2013-02-01T08:53:44.387 に答える
0

-- これ以上データベース スペースを使用しないビューを作成します。

create view max_cat_tbl_view
( Cat1, Cat2, Maxvalue ) as 
select Cat1, Cat2, max(Value) 
from cat_tbl 
group by Cat1, Cat2
go

-- ビューをクエリして、最大値を超える合計を取得します

select Cat1, sum(Maxvalue) from max_cat_tbl_view group by Cat1 order by Cat1
go

良いSQL、おやすみなさい。ケリー805

于 2013-01-31T21:12:56.070 に答える