database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31455 게시물 읽기
No. 31455
처음으로 질문을 드려봅니다.(with 문)
작성자
침착맨
작성일
2024-06-10 20:20ⓒ
2024-06-10 20:21ⓜ
조회수
48

count()가 한 값만 출력이 됩니다.

좀 봐주세욤.. ^^


각 쿼리 실행값 

1. SELECT userGroup FROM Person WHERE userID in (1,2,3)

결과값 

userGroup

---------------------------------------------------

1

2

3

 

2. tbTest2 내 union all 값은 아래와 같습니다.

cnt

---------------------------------------------------

100

200


그런데 왜 아래와 같은 결과값이 나올까요?


userGroup      cnt 

-----------------------------------------------

1                   100

2                   100  <<< 요녀석이 왜 200 이 안나올까요????

 




작성한 쿼리입니다.

먼저 감사합니다.

 

with tbTest1 as (SELECT userGroup FROM member

 

WHERE userID in (1,2,3),

 

tbTest2 as (

 

                select count(*) as cnt from product a

                join product2 b

                on a.prod_id = b.prod_id

                where b.userID = 'Diva'

                union all


                select count(*) as cnt from product a

                join product2 b

                on a.prod_id = b.prod_id

                where b.userID = 'Hanzo' 

 

)

 

select a.*, b.cnt

 

from tbTest1 a , tbTest2 b

 

group by a.userID

이 글에 대한 댓글이 총 1건 있습니다.

1. 그룹바이 쿼리가 표준에 어긋나는 사용법입니다.

- 다른 DB 였다면 에러가 나는 구문이지만

- MySQL 에서는 오류는 안나고, 하나의 값만 표현됩니다.

2. 또한 두 집합간 조인 조건도 없네요.

- union 으로 각 사용자별 건수를 구하는게 아니라

- 사용자로 조인이 되어야 할 것 같습니다.

- 그런데 사용자 조건이 다르네요?

- 1번 집합의 사용자는 (1,2,3) 인데? 2번그룹의 사용자는 (Diva, Hanzo) 네요?

마농(manon94)님이 2024-06-11 08:41에 작성한 댓글입니다.
이 댓글은 2024-06-11 08:42에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
31455처음으로 질문을 드려봅니다.(with 문) [1]
침착맨
2024-06-10
48
31454mysql 과부하 [3]
즐겨즐겨
2024-04-14
281
31452좀 더 효율적인 쿼리가 없을지요? [5]
즐겨찾기
2024-04-05
335
31448왜 MySQL에서는 인덱싱에 B+Tree가 아닌 B-Tree를 사용할까요 [2]
이진호
2024-03-29
273
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다