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개
채택된 답변
+20 포인트
4년 전
mysql4버전대에 사용을 하시는군요..
이 버전대에 이게 먹힐지 모르겠지만
순번을 매겨서 마지막 순번을 취하면 원하시는 값을 뽑아내지 않을까 생각합니다.
Copy
set @num:=0;
SELECT @num:=@num+1 as rownum,count(*) from 테이블 where 1 and wdate like '2022-01%'
group by site_code, NO ORDER BY rownum desc
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
4년 전
댓글을 작성하려면 로그인이 필요합니다.
4년 전
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.
가능하네요.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
3년 전
답변감사합니다.
저도 distinct 찾아보고 아차 싶었습니다...
진작 해볼껄하고..
추후 작업시 해보겠습니다.
감사합니다.
저도 distinct 찾아보고 아차 싶었습니다...
진작 해볼껄하고..
추후 작업시 해보겠습니다.
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
생각보다 구현이 잘 안되서.. php 조합으로 그냥 표현했습니다.
$totalRecord = 0;
for($i=0; $i<$crow=mysql_fetch_row($cresult); $i++){
$totalRecord++;
}
그냥 for문에서 갯수를 다 더하는식으로 했는데, 개인적으로 sql은 sql로 끝내자는 마인드가
있어서, 추후에 더 좋은 방법있으면 댓글로 남겨보겠습니다.
4.0 버전 msyql 이라 답답합니다. ㅎㅎ
다시한번 답변 감사합니다.