질문입니다. 0 23 862

by ckdtm [MySQL] [2017.09.14 15:43:14]


select 사용자,지역,count(번호)

form a,b

where a.번호=b.번호 and b.제품순서='1' and a.날짜 between '첫날' and'끝날'

and  사용자 in ('a','b','c') and 지역='국내'

group by 사용자,지역;

이렇게 쿼리를 짜고 실행했을때

사용자 지역 총합
a 국내 1012
b 국내 23
c 국내 221

이런식으로 나옵니다.

여기서 제가 하고 싶은것은

사용자 지역 총합
국내 국내 1256

이렇게 만들고 싶습니다 어떻게 해야 할까요?

by 랑에1 [2017.09.14 15:49:02]
select '국내',지역,count(번호)

form a,b

where a.번호=b.번호 and b.제품순서='1' and a.날짜 between '첫날' and'끝날'

and  사용자 in ('a','b','c') and 지역='국내'

group by 지역;

 


by 우리집아찌 [2017.09.14 16:01:40]
select 지역 AS "사용자" ,지역,count(번호)
  form a,b
 where a.번호=b.번호 and b.제품순서='1' and a.날짜 between '첫날' and'끝날'
   and  사용자 in ('a','b','c') and 지역='국내'
 group by 지역;

 


by ckdtm [2017.09.14 16:19:44]

둘다 한줄로 나오긴 하지만 사용자가 국내 또는 a 로 나오네요...


by 마농 [2017.09.14 16:32:20]

글세요? 원하시는 바를 정확하게 전달하지 못하시는 것 같네요.
  - 사용자가 국내로 나온다는 것은? 원하시는 결과인데요?
  - 사용자가 a 로 나온다는 것은? 답변 내용과 다르게 쿼리를 작성했다는 거네요?


by ckdtm [2017.09.14 16:42:54]

a,b,c를 하나로 묶어서 국내라는 별칭? 으로 지정해서 출력 하는게 목적입니다. 직접적인 데이터를 쓴게 아니여서 제대로 전하지 못한것 같네요

지역은 국내 대신 kr을 쓰거 있습니다

 


by 마농 [2017.09.14 16:45:13]

위 두분의 답변이 도움이 될 듯 한데요? 이상하네요?


by ckdtm [2017.09.14 16:50:55]

혹시 where in 부준에 별칭 사용가능 한가요?


by 마농 [2017.09.14 16:53:09]

where 절에 별칭 사용은 불가능 하구요...
원본 대비 원하시는 결과표를 보여주시면 되는데..
위 두분의 답변이 보여주신 결과표를 만족하는 답변입니다.
이 답변이 원하는게 아니라면? 질문의 방법이 잘못 된 것 같습니다.
원하시는 바를 정확하게 전달해 주세요.


by jkson [2017.09.14 16:55:56]

실제 데이터와 작성하신 쿼리를 보여주시는 게 빠를듯..


by ckdtm [2017.09.14 17:00:01]

질문에 지역을 모두 국내로 적어놓았는데

원래 값은 kr 입니다.

그래서 제가 원하는 결과값은

사용자 지역 총합
a kr 1012
b kr 23
c kr 221

이 결과값을

사용자 국내 총합
국내 kr 1256

이렇게 만들고 싶습니다.


by jkson [2017.09.14 17:02:23]

kr 과 국내를 매칭시켜주는 코드테이블이 있나요? 지역 자리에는 kr 말고도 여러 코드가 있을 것 같은데요.


by 마농 [2017.09.14 17:09:02]

조회 컬럼의 타이틀이 (사용자, 국내) 보다는
(지역코드, 지역명) 이 되어야 하지 않을까 생각되네요.


by ckdtm [2017.09.14 17:12:25]

지역은 kr 말고도 많이 있지만

kr과 국내를 매칭시켜주는 테이블은 따로 없습니다


by jkson [2017.09.14 17:14:10]

그렇다면 지역별로 group by 하면 kr 이이에 다른 코드도 나올텐데 그 코드들의 명칭은 어떻게 표시해줘야하나요?

단순히 '국외' 인가요?

국내 kr 1256

국외 en 888

국외 jp 777

where 절에 국내 조건이 있네요ㅎㅎ;


by 마농 [2017.09.14 17:15:14]

위 두분의 답변이 도움이 되지 않는 이유를 모르겠네요?


by jkson [2017.09.14 17:16:46]

실제 테이블 select 한 캡쳐랑 작성하신 쿼리를 올려주세요. 뭔가 서로 소통이 잘 안 되는 느낌이네요ㅎㅎ


by jkson [2017.09.14 17:28:29]

아무래도.. 두 쿼리 모두 한 줄로 나오는데 '국내' 또는 'a'라면 두 쿼리 결과가 다르다는 것이고..

위에 작성하신 두 분 쿼리를 적용하는 과정에서 랑에님 꺼는 select절에 '국내'라고 되어있으니 '국내'로 나왔고, 아찌님 꺼는 'a'로 나온 거 아닌가요? group by를 지명이 아니라 사용자로 하셨을 거 같아요ㅎㅎ

 


by 우리집아찌 [2017.09.14 17:52:09]

group by 를 사용자로 하면 3줄이 나오겠지..


by jkson [2017.09.14 18:33:29]

본문은 어차피 예시데이터라 저대로는 아닐 것 같고 kr에 해당하는 사용자가 1명일 거 같네요. 아니면 사용자 자리에 'a'가 나올 이유가 없잖아요.


by ckdtm [2017.09.14 17:53:31]

컴퓨터로 작성하지 못해서 폰으로만 작성하다보니 서로 소통이 안되는것 같습니다.

집에서 필요한 데이터만 넣은 테이블로 쿼리 및 결과 올리도록 하겠습니다.

초보자라 이해못하는 부분도 있고 이해시켜드리기도 어려운것 같네요...


by ckdtm [2017.09.14 22:55:50]
select a.type, a.area, count(a.no=b.no)
from a,b
where a.no=b.no and b.seq='1' and date between '2017-08-15' and '2017-09-11'
and a.type in ('dsa','errf') and a.area='kr'
group by a.type,a.area;

이렇게 쿼리를 작성해서 실행을하면

type area count(a.no=b.no)
dsa kr 5
errf kr 4

이런 결과가 나옵니다.

이 결과물을

type area count(a.no=b.no)
국내 kr 9

이런식으로 만들수 있는지 물어본거 였습니다.

 


by jkson [2017.09.15 08:06:03]

위에 두 분이 만들어주신 쿼리가 원하시는 결과를 만들어주는 쿼리입니다.

원하시는 결과가 안 나왔다면 그대로 작성한 게 아니어서 그런 것이고

왜 틀린 데이터가 나왔는지는 실제 데이터와 만드신 쿼리를 알려주셔야 알 수 있는 거고요.


by 마농 [2017.09.15 08:24:19]

왜 계속 똑같은 질문을 반복하시는지 모르겠네요?
답은 이미 나와 있으나. 답인 줄 모르시네요...

SELECT '국내' type
     , a.area
     , COUNT(*) cnt
  FROM a
     , b
 WHERE a.no   = b.no
   AND b.seq  = '1' 
   AND a.date BETWEEN '2017-08-15' AND '2017-09-11'
   AND a.type IN ('dsa', 'errf')
   AND a.area = 'kr'
 GROUP BY a.area
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입