2列のテーブルがあり、1つはIDで、もう1つはintです。
一意の ID の int を合計するにはどうすればよいですか?
Eg
Id Value
1 2
1 2
2 2
3 2
2 2
3 2
Result: 6 (2+2+2)
2列のテーブルがあり、1つはIDで、もう1つはintです。
一意の ID の int を合計するにはどうすればよいですか?
Eg
Id Value
1 2
1 2
2 2
3 2
2 2
3 2
Result: 6 (2+2+2)
select sum(int)
from mytab t where not exists
(select * from mytab
where id = t.id
group by id
having count(*) > 1)
Id がテーブルに複数回存在する場合、同じ値を持つと仮定すると、次のように動作するはずです。
SELECT Sum(T.Value) FROM
(
SELECT DISTINCT M.Id, M.Value FROM MyTable AS M
)AS T
ただし、ID が同じであるレコード間で値が異なる可能性がある場合は、別の方法で処理する必要があります。次の例では、一番上の値のみを取得しています。
SELECT Sum(T.Value) FROM
(
SELECT DISTINCT M.Id,
(
SELECT TOP(1) MV.Value
FROM MyTable AS MV
WHERE MV.Id = M.Id
ORDER By MV.Value DESC
) AS Value
FROM MyTable AS M
)AS T