MySQL Sum () 여러 열
학생 스코어 카드 테이블이 있습니다. 여기 테이블이 있습니다.
subject | mark1 | mark2 | mark3 |......|markn
stud1 | 99 | 87 | 92 | | 46
stud2 |....................................
.
.
studn |....................................|
이제 각 학생의 총점을 합산해야합니다. 나는 사용하여 그것을 얻었다 sum(mark1+mark2+...+markn) group by stud
. 각 열 이름을 추가하지 않고 합산하는 방법을 알고 싶습니다. 마크 26까지의 경우 엄청날 것입니다. 그래서 누구든지 그것을 고치는 방법을 알 수 있습니다. 미리 감사드립니다.
SELECT student, (SUM(mark1)+SUM(mark2)+SUM(mark3)....+SUM(markn)) AS Total
FROM your_table
GROUP BY student
이를 수행하는 또 다른 방법은 선택 쿼리를 생성하는 것입니다. 이 바이올린으로 연주하십시오 .
SELECT CONCAT('SELECT ', group_concat(`COLUMN_NAME` SEPARATOR '+'), ' FROM scorecard')
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA` = (select database())
AND `TABLE_NAME` = 'scorecard'
AND `COLUMN_NAME` LIKE 'mark%';
위의 쿼리는 선택을 수행하는 다른 쿼리를 생성합니다.
- 위의 쿼리를 실행하십시오.
- 결과를 가져 와서 결과 쿼리를 실행합니다.
샘플 결과 :
SELECT mark1+mark2+mark3 FROM scorecard
더 이상 모든 열을 수동으로 추가 할 필요가 없습니다.
학생 선택, SUM (mark1 + mark2 + mark3 + .... + markn) 총계를 your_table에서
짧은 대답은 당신이 가지고있는 디자인을 감안할 때 이것을 할 수있는 좋은 방법이 없다는 것입니다. 다음은 주제에 대한 관련 질문 입니다. 단일 행의 합계 값?
스키마를 정규화하고 subject_id와 마크 열이있는 "Marks"라는 별도의 테이블을 만든 경우 관계형 모델에서 의도 한대로 SUM 함수를 활용할 수 있습니다.
그러면 귀하의 쿼리는
SELECT subject, SUM(mark) total
FROM Subjects s
INNER JOIN Marks m ON m.subject_id = s.id
GROUP BY s.id
// 여러 행의 MySQL 합계 Hi 다음은 열 합계를 수행하는 간단한 방법입니다.
SELECT sum(IF(day_1 = 1,1,0)+IF(day_3 = 1,1,0)++IF(day_4 = 1,1,0)) from attendence WHERE class_period_id='1' and student_id='1'
귀하의 경우 markn
열은 "AllowNull는"당신은 1 개 NULL 값이 NULL 총 발생합니다 때문입니다, 반환되는 정확한 결과를 보장하기 위해 약간의 추가 작업을 수행해야합니다.
이것이 내가 정답이라고 생각하는 것입니다.
SUM(IFNULL(`mark1`, 0) + IFNULL(`mark2`, 0) + IFNULL(`mark3`, 0)) AS `total_marks`
IFNULL 은 첫 번째가 NULL이면 두 번째 매개 변수를 반환합니다. COALESCE를 사용할 수 있지만 필요한 경우에만 사용하는 것을 선호합니다. mysql에서 ifnull과 통합의 차이점 은 무엇입니까?를 참조하십시오 .
SUM 전체 계산 -ing 개별적으로 각 컬럼은 SUM 한창보다 정돈된다.
SELECT `student`, SUM(IFNULL(`mark1`, 0) + IFNULL(`mark2`, 0) + IFNULL(`mark3`, 0)) AS `total_marks`
FROM student_scorecard
GROUP BY `student`
모든 주제 행이 스프레드 시트와 같은 열 변수가되도록 데이터베이스 구조를 변경할 수 있습니다. 이것은 그러한 분석을 훨씬 쉽게 만듭니다.
참조 URL : https://stackoverflow.com/questions/22369336/mysql-sum-multiple-columns
'IT박스' 카테고리의 다른 글
주어진 이름 '@ style / Theme.Holo.Light.DarkActionBar'와 일치하는 리소스를 찾을 수 없습니다. (0) | 2021.01.11 |
---|---|
동적 매개 변수로 ui-router 해석 (0) | 2021.01.11 |
Constexpr 대 매크로 (0) | 2021.01.11 |
Angular 2 : 배열의 변화를 감지하는 방법은 무엇입니까? (0) | 2021.01.11 |
Constraint Layout에서 Barrier와 Guideline의 차이점은 무엇입니까? (0) | 2021.01.11 |