··조회 10,980
[re] 테이블에서 지정한 필드 목록의 합을 불러오는 식에 대해서요..
한 리그에 같은 팀은 없죠? 다른 리그에 같은 팀은 있을 수 있지만.
그럼 쿼리만으로 해결 가능합니다.
1 리그에도 1 팀이 있고.. 2 리그에도 1팀이 있는 경우
SELECT league,team,sum(hit) as hit,sum(abi) as abi
FROM 테이블명
WHERE team = '1'
GROUP BY team,league
저렇게 쿼리를 날리면 결과는....
league team hit abi
1 1 4 5
2 1 1 3
이런 식으로 나옵니다. 근데 1리그의 1팀만을 보고 싶으신거죠?
그럼 저기서 where 로 1리그만 주면 되겠죠. 아래 최종 쿼리입니다.
SELECT league,team,sum(hit) as hit,sum(abi) as abi
FROM 테이블명
WHERE team = '1' AND league = '1'
GROUP BY team,league //where 절에서 이미 조건을 걸었기 때문에
//굳이 league 를 그룹으로 안묶어도 결과는 나옵니다.
결과는..
league team hit abi
1 1 4 5
>http://www.yagootj.com/record/list.php
>
>밑에 질문드린 사람입니다.
>
>select league,team,name,sum(ab) as s_ab,sum(hit) as s_hit from $tablename ".$que_league." ".$que_team."".$que_name." GROUP BY name
>
>동명이인문제는 그냥 이름옆에 점이나 약자 표시하는것으로 해결할려구 합니다.
>
>그런데 이번에는요.. 팀의 누적기록이 문제라.. 해결방법이 없나 해서 여쭙습니다.
>
>동명이인문제가 해결될수 없으면 이것두 안되는 것은 알겠는데요..
>
>이런식의 해결은 어떨까 해서 먼저 여쭙습니다.
>
>현재 리그와 팀은 숫자형태로 db 저장하고 리스트에 뿌려줄때만 텍스트로 전환을 합니다.
>
>리그는 1,2,3,4 로 구분했고 팀도 각리그마다 순서대로 1,2,3,4..... 이렇습니다.
>
>이러면 팀으로 그룹지을경우 리그가 달라도 팀번혹 같으면 같이 합싱이 되는거 맞죠.. 그래서 이런방식은 아될거 같구요..
>
>team2이라는 필드를 하나만들고
>
>insert.php에서
>
>리그가 1이고 팀이 1이면 team3는 11
>리그가 2이고 팀이 1이면 team3는 21
>
>이런식으로 해서 group by team3 로 하면.. 가능하겠죠?
>
>그리고 list에서 팀명을 뿌려줄때 기존 team 이 아니라 team3를 불러오면 되구요..
>
>먼저 덥석 해보기가 겁나서 먼저 고수님들의 조언을 구합니다.
>이미 입력이 시작되서 최대한 안건드리고 할 생각이거든요
그럼 쿼리만으로 해결 가능합니다.
1 리그에도 1 팀이 있고.. 2 리그에도 1팀이 있는 경우
SELECT league,team,sum(hit) as hit,sum(abi) as abi
FROM 테이블명
WHERE team = '1'
GROUP BY team,league
저렇게 쿼리를 날리면 결과는....
league team hit abi
1 1 4 5
2 1 1 3
이런 식으로 나옵니다. 근데 1리그의 1팀만을 보고 싶으신거죠?
그럼 저기서 where 로 1리그만 주면 되겠죠. 아래 최종 쿼리입니다.
SELECT league,team,sum(hit) as hit,sum(abi) as abi
FROM 테이블명
WHERE team = '1' AND league = '1'
GROUP BY team,league //where 절에서 이미 조건을 걸었기 때문에
//굳이 league 를 그룹으로 안묶어도 결과는 나옵니다.
결과는..
league team hit abi
1 1 4 5
>http://www.yagootj.com/record/list.php
>
>밑에 질문드린 사람입니다.
>
>select league,team,name,sum(ab) as s_ab,sum(hit) as s_hit from $tablename ".$que_league." ".$que_team."".$que_name." GROUP BY name
>
>동명이인문제는 그냥 이름옆에 점이나 약자 표시하는것으로 해결할려구 합니다.
>
>그런데 이번에는요.. 팀의 누적기록이 문제라.. 해결방법이 없나 해서 여쭙습니다.
>
>동명이인문제가 해결될수 없으면 이것두 안되는 것은 알겠는데요..
>
>이런식의 해결은 어떨까 해서 먼저 여쭙습니다.
>
>현재 리그와 팀은 숫자형태로 db 저장하고 리스트에 뿌려줄때만 텍스트로 전환을 합니다.
>
>리그는 1,2,3,4 로 구분했고 팀도 각리그마다 순서대로 1,2,3,4..... 이렇습니다.
>
>이러면 팀으로 그룹지을경우 리그가 달라도 팀번혹 같으면 같이 합싱이 되는거 맞죠.. 그래서 이런방식은 아될거 같구요..
>
>team2이라는 필드를 하나만들고
>
>insert.php에서
>
>리그가 1이고 팀이 1이면 team3는 11
>리그가 2이고 팀이 1이면 team3는 21
>
>이런식으로 해서 group by team3 로 하면.. 가능하겠죠?
>
>그리고 list에서 팀명을 뿌려줄때 기존 team 이 아니라 team3를 불러오면 되구요..
>
>먼저 덥석 해보기가 겁나서 먼저 고수님들의 조언을 구합니다.
>이미 입력이 시작되서 최대한 안건드리고 할 생각이거든요
댓글 2
근데 질문이 있어서요
group by로 두개의 필드까지만 가능한가요?
아니면 그 이상도 가능한가요? 이게 가능하면 같은팀의 동명이인이 아니면 구분이 가능 한거 맞죠?
그리구요. group by team,league 부분에서는 반드시 하위분류로 보는 필드가 앞에 오게 하는 건가요?
그러면 팀내 동명이인을 제외한 리그내의 동명이인은
group by name,team,league로 구분이 가능한거죠?
마지막으로 궁금한건요...제가 진자 왕초보라서요...
WHERE team = '1' AND league = '1' ->이건 and 이고
group by name,team,league ->이건 쉼표이고
어떤 함수에 대해 다르게 쓰는건지요 아니면 쉼표나 and 만의 고유의 특성을 가지는 지요..
http://phpschool.com/bbs2/inc_board.html?start=0&mode=search&field=title&search_name=&period=all&s_que=SQL&code=classroom2&operator=and&category_id=