0

私はこのテーブルを持っています:

name    count1    count2   address
John      5         0      London
John      0         3      London
Phil      1         0      Paris

私は手に入れたい

name    count1    count2   address
John      5         3      London
Phil      1         0      Paris

したがって、count1 と count2 を合計し、名前でグループ化し、アドレスをマージしたい (アドレスは常に各名前で同じになるため)

4

5 に答える 5

1

次のクエリを使用します。アドレスをどのように含めるかは、使用しているデータベースによって異なります。

select name, sum(count1) count1,sum(count2) count2 ,address
from table1
group by name, address

遊ぶSQLFiddle

于 2012-10-31T21:50:30.407 に答える
1

名前と住所でグループ化する必要があります。

SELECT name, address, sum(count1), sum(count2)
FROM table
GROUP BY name, address
于 2012-10-31T21:44:41.277 に答える
1

したがって、名前住所でグループ化する必要があります。

select name, sum(count1)as count1, sum(count2)as count2, address
from dbo.table
group by name, address;

基本的に、レコードをGROUP BY マージします。

于 2012-10-31T21:45:11.540 に答える
0

これはSQL集計101です(私はまだ学んでいます、ところで):

select name, sum(count1), sum(count2), address
from mytable
group by name, address;
于 2012-10-31T21:44:10.637 に答える
0

ソリューションによる二重グループ化が気に入らない場合は、select inside from も使用できます。

select distinct temp.name, temp.count1, temp.count2, t.address
from mytable t, (select t2.name, sum(t2.count1) as count1, sum(t2.count2) as count2
                 from mytable t2
                 group by t2.name) as temp
where t.name = temp.name
于 2012-10-31T22:09:33.400 に答える