2016-07-30 4 views
1

4 개의 열과 5 개의 행이있는 테이블이 있습니다. 모든 5 개의 행을 하나의 열 합계가 필요합니다. MySQL에서도 가능합니까? 내가 필요로 무엇모든 행 가져 오기 및 열에 대한 합계를 적용하십시오.

name id rank points 
sam 1 4  34 
ram 2 6  45 
hari 3 1  87 
kum 4 7  56 
raj 5 5  20 

이름 아이디 순위 포인트와 4

위 순위 결과

name id rank points sum 
ram 2 6  45 121 
kum 4 7  56 
raj 5 5  20 
+1

정말 도움이 될 것입니다. 동시에 SQL에서는 다른 쿼리 만 사용할 수 있습니다. 당신은 내가 믿는 그들을 결합 할 수 없다. –

+0

불가능합니다. 한 행에 값을 넣을 수 없습니다. – Jens

+0

mysql @ praveen을 사용하고 있습니다. 다른 열의 Null도 허용됩니다. 나는 같은 테이블 데이터에 대해 db를 두 번 치고 싶지 않다. –

답변

2

흠 예상 지점의 합계입니다. . .

select name, id, rank, points, 
     (select sum(t2.points) from t t2 where t2.rank > 4) as `sum` 
from t 
where rank > 4; 

이 각 행에 sum을두고 있지만 합리적인 접근 방법처럼 보인다.

1

당신과 다른 사람들을 위해, 내가 사용하는 DML & DDL은 : 그 일을 위해

CREATE TABLE `users` (
    `name` varchar(5), 
    `id` int, 
    `rank` int, 
    `points` int 
); 

INSERT INTO users (
    `name`, `id`, `rank`, `points` 
) VALUES (
    'sam', 1, 4, 34 
), (
    'ram', 2, 6, 45 
), (
    'hari', 3, 1, 87 
), (
    'kum', 4, 7, 56 
), (
    'raj', 5, 5, 20 
); 

, 당신은 필요 별도의 쿼리를 가지고 :

SELECT SUM(`points`) FROM `users` WHERE `rank` > 4 

을 내가 것 이것을 끝에 추가 할 것을 제안하십시오.

SELECT *, (
    SELECT SUM(`points`) FROM `users` WHERE `rank` > 4 
) AS `sum` FROM `users` WHERE `rank` > 4 

위의 출력으로이를 줄 것이다 :

+------+----+------+--------+-----+ 
| name | id | rank | points | sum | 
+------+----+------+--------+-----+ 
| ram | 2 | 6 |  45 | 121 | 
| kum | 4 | 7 |  56 | 121 | 
| raj | 5 | 5 |  20 | 121 | 
+------+----+------+--------+-----+ 

바이올린 : 당신은 SQL DML을 줄 수 있다면 http://www.sqlfiddle.com/#!9/1dd6260/5

관련 문제