3 개 표제에 대해 3 개 표제가 포함되어 있으며 각 표제마다 각기 다른 표식이 어떻게 표시됩니까?3 개 중 최대 2 개 선택
0
A
답변
4
그것은 끔찍한 것 - 시도 : 당신이 미래에 별도의 행에 각 마크를 저장하는 데 가르 칠 것입니다
select case when mark1 >= mark2 and mark1 >= mark3 then mark1
when mark2 >= mark1 and mark2 >= mark3 then mark2
else mark3 end as first,
case when mark1 >= mark2 and mark1 <= mark3 then mark1
when mark1 >= mark3 and mark1 >= mark2 then mark1
when mark2 >= mark1 and mark1 >= mark3 then mark2
when mark2 >= mark3 and mark1 >= mark1 then mark2
else mark3 end as second
from my_table;
을 ;-)
+1
+1 for future thoughts =) –
1
첫째, 당신은 정말 테이블을 정상화해야한다. 둘째, 단일 쿼리의 목적으로 정규화하는 쉬운 방법이 있습니다. CTE.
BEGIN;
CREATE SCHEMA sogrades;
SET search_path TO sogrades;
CREATE DOMAIN grade AS
INT
CHECK (VALUE BETWEEN 1 AND 5)
;
CREATE TABLE grades (
student INT NOT NULL PRIMARY KEY
, grade1 GRADE
, grade2 GRADE
, grade3 GRADE
);
INSERT INTO grades (student, grade1, grade2, grade3)
VALUES
(10, 1, 3, 5)
, (20, 4, 3, 2)
, (30, 1, 2, 1)
;
WITH g (student, grade) AS (
SELECT student, grade1 FROM grades UNION
SELECT student, grade2 FROM grades UNION
SELECT student, grade3 FROM grades
)
SELECT DISTINCT gl.student, gl.grade
FROM g gl, g gr
WHERE gl.student = gr.student
AND gl.grade < gr.grade
ORDER BY student, grade;
ROLLBACK;
관련 문제
- 1. 최대 열 두 개 선택 (다시 방문)
- 2. MySQL 일치하는 5 개 필드 중 2 개
- 3. 3 개
- 4. 레일을 2 개 발전기로 변환 3?
- 5. 내가 2 개 테이블이
- 6. 5 개 중 쌍을 찾는 중
- 7. 액션 스크립트 3 - 최대 한 클라이언트의 소켓 3 개?
- 8. 루비 - 2 개 모델
- 9. 2 개 버튼
- 10. 비교 2 개 인터페이스
- 11. 2 개 파일
- 12. 젠토 2 개 블록
- 13. 2 개 엔티티를 비교합니다.
- 14. 단지 3 개
- 15. 레일 3 개 협회
- 16. 레일 : 3 개 모델
- 17. 레일 3 개 "없이"
- 18. 레일 3 개 쿠키
- 19. uploadify로 2 개 파일 업로드
- 20. 만 2 개 라인을 보여
- 21. 더 우아한처럼 2 개 테이블이
- 22. 이전보기 2-4 개 백업
- 23. Kohana (ORM) 2 개 테이블
- 24. 문제 - 오류 2 개 태그
- 25. MySQL은 내가 2 개 테이블이
- 26. 병합 3 개 가지 파일
- 27. 3 개 다른 특성을 가진 8 개 특성을 비교하고 NIL
- 28. 2 개 저장소 사이에서 동기화
- 29. 타일 2 개 팝업 창
- 30. GROUPBOX의 패널 2 개? WinForms
표가 정규화되지 않은 것처럼 들립니다. 'student_id, exam_id, mark '와 같은 테이블을'student_id, mark1, mark2, mark3'처럼 쿼리하는 것이 더 쉽습니다. – dnagirl