group by count(*) 관련

group by count(*) 관련

QA

group by count(*) 관련

본문

mysql 버전이 낮아서 서브쿼리에 제한이 있습니다.

 

select count(*) from 테이블 where 1 and wdate like '2022-01%' group by site_code, no

 

와같은 쿼리를 날렸을떄

아래와 같이 각각 카운팅되는데 제가 원하는것은 이 행에 갯수입니다.

5라는 값이 나왔으면 좋겠는데, 어떻게 쿼리를 만들수있을까요?

 

count(*)
2
1
8
15

11

이 질문에 댓글 쓰기 :

답변 2

mysql4버전대에 사용을 하시는군요..

이 버전대에 이게 먹힐지 모르겠지만

순번을 매겨서 마지막 순번을 취하면 원하시는 값을 뽑아내지 않을까 생각합니다.


set :=0;
SELECT :=+1 as rownum,count(*) from 테이블 where 1 and wdate like '2022-01%' 
group by site_code, NO ORDER BY rownum desc

답변 감사합니다.
생각보다 구현이 잘 안되서.. php 조합으로 그냥 표현했습니다.

$totalRecord = 0;
 for($i=0; $i<$crow=mysql_fetch_row($cresult); $i++){
        $totalRecord++;
 }

그냥 for문에서 갯수를 다 더하는식으로 했는데, 개인적으로 sql은 sql로 끝내자는 마인드가
있어서, 추후에 더 좋은 방법있으면 댓글로 남겨보겠습니다.

4.0 버전 msyql 이라 답답합니다. ㅎㅎ

다시한번 답변 감사합니다.

select count( DISTINCT site_code, no) from 테이블 where 1 and wdate like '2022-01%'

4.0에서 지원할지 잘모르겠네요.

==

https://downloads.mysql.com/docs/refman-4.1-en.a4.pdf

COUNT(DISTINCT ...) [824] was added in MySQL 3.23.2.

가능하네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 224
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT